Hello, I am testing out some old SQLAlchemy code I wrote for 0.3.3 on the newest version of SQLAlchemy (0.3.8), and I have a problem.
The short of it is that I get this error: InvalidRequestError: Column 'users.id' is not available, due to conflicting property 'id':<sqlalchemy.orm.properties.ColumnProperty object at 0x011866B0> Attached is a test file that generates this error Thanks, Michael --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To post to this group, send email to sqlalchemy@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en -~----------~----~----~----~------~----~------~--~---
# There are two main classes, Group and User, and a relation class Membership. # In order for a User u to be a member of Group g, there must be an entry in # the membership table with a level of 100. from sqlalchemy import * db = create_engine('sqlite://', echo=True) meta = BoundMetaData(db) session = create_session() groups = Table("groups", meta, Column("id",Integer, primary_key=True), Column("name", Unicode(40))) membership = Table("membership", meta, Column("user_id", Integer, ForeignKey("users.id"), primary_key=True), Column("group_id", Integer, ForeignKey("groups.id"), primary_key=True), Column("level", Integer)) users = Table("users", meta, Column("id", Integer, primary_key=True), Column("name", Unicode(255))) class User(object): def __repr__(self): return str(self) def __str__(self): return "<User %s: %s>" % (self.id, self.name) class Group(object): def __repr__(self): return str(self) def __str__(self): return "<Group %s: %s>" % (self.id, self.name) class Membership(object): def __repr__(self): return str(self) def __str__(self): return "<Membership %s, %s: %s>" % (self.user_id, self.group_id, self.level) Group.mapper = mapper(Group, groups, properties = { 'members': relation(User, viewonly=True, secondary=membership, backref='groups', primaryjoin=and_(membership.c.user_id==users.c.id, membership.c.level==100, membership.c.group_id==groups.c.id)), }) User.mapper = mapper(User, users, properties = { }) Membership.mapper = mapper(Membership, membership, properties = { 'user': relation(User), 'group': relation(Group) }) meta.drop_all() meta.create_all() u = User() g = Group() m = Membership() u.name = 'Michael Carter' g.name = 'Home' m.group = g m.user = u m.level = 100 session.save(u) session.save(g) session.save(m) session.flush() print u.groups print g.members