Hi,

I'm new to sqlalchemy though I've used other ORMs (e.g. Hibernate) before, 
and I'm trying to use the new automap feature.

However it seems to be using the foreign table name rather than a suffixed 
version of the column name when naming relationships.  Is there a reason 
for doing it this way?

SQL (using postgres 9.3, psycopg2):

CREATE TABLE room (
       id serial NOT NULL PRIMARY KEY,
       name varchar(80) NOT NULL,
       left_neighbor integer REFERENCES room(id),
       right_neighbor integer REFERENCES room(id)
);

CREATE TABLE location (
       id serial NOT NULL PRIMARY KEY,
       room integer NOT NULL REFERENCES room(id),
       description varchar(200) NOT NULL
);

This gave me on automap_base().prepare():

sqlalchemy.exc.ArgumentError: WARNING: when configuring property 'room' on 
Mapper|location|location, column 'room' conflicts with property 
'<RelationshipProperty at 0x10267ba10; room>'. 

After temporarily renaming the 'location.room' column to 'roomx', it loaded 
and I found I could see a room attribute on the auto-created Location 
class.  However with the Room class itself there is a problem, since I have 
two self references.  This appears to create room and room_collection 
attributes.  I haven't experimented to see which/how these get filled in 
for instances, but clearly the desired distinction between 'left' and 
'right' neighbors is lost.

If the naming needs to be done this way for general consistency with how 
things are done elsewhere in sqlalchemy, is there any way I can override 
it, preferably by monkeying on the DB side (explicit naming of foreign key 
constraints, etc.), not manually tweaking on the python side (which would 
defeat the purpose of using automap)?

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sqlalchemy+unsubscr...@googlegroups.com.
To post to this group, send email to sqlalchemy@googlegroups.com.
Visit this group at http://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to