Skip to content

Instantly share code, notes, and snippets.

@timo
Forked from inklesspen/gist:465613
Created July 6, 2010 18:02
Show Gist options
  • Select an option

  • Save timo/465708 to your computer and use it in GitHub Desktop.

Select an option

Save timo/465708 to your computer and use it in GitHub Desktop.
class City(Base):
__tablename__ = "city"
name = Column(Unicode(6), primary_key=True)
rooms = relationship("Room", backref="city")
def __repr__(self):
return u'<City "%s" with %d rooms>' % (self.name, len(self.rooms))
class Room(Base):
__tablename__ = "room"
name = Column(Unicode(6), primary_key=True)
city_name = Column(Unicode(6), ForeignKey("city.name"), nullable=True)
doors = relationship("Door", primaryjoin=or_("Room.name == Door.room_a_id", "Room.name == Door.room_b_id"), viewonly=True, foreign_keys=["Room.name"])
def __repr__(self):
return u'<Room "%s"%s %d doors>' % (self.name,
' in city "%s"' % self.city.name if self.city is not None else "",
len(self.doors))
class Door(Base):
__tablename__ = "doors"
locked = Column(Boolean)
room_a_id = Column(Unicode(6), ForeignKey("room.name"), nullable=False, primary_key=True)
room_b_id = Column(Unicode(6), ForeignKey("room.name"), nullable=False, primary_key=True)
room_a = relationship("room", primaryjoin="Door.room_a_id == Room.name")
room_b = relationship("room", primaryjoin="Door.room_b_id == Room.name")
@timo

timo commented Jul 6, 2010

Copy link
Copy Markdown
Author
Traceback (most recent call last):
  File "/home/timo/coding/lojbanquest/bin/nagare-admin", line 9, in <module>
    load_entry_point('nagare==0.3.0', 'console_scripts', 'nagare-admin')()
  File "/home/timo/coding/lojbanquest/lib/python2.6/site-packages/nagare/admin/main.py", line 73, in main
    command.run(parser, options, args)  # Run the command
  File "/home/timo/coding/lojbanquest/lib/python2.6/site-packages/nagare/admin/db.py", line 65, in create
    for (database_settings, populate) in read_options(options.debug, args, parser.error):
  File "/home/timo/coding/lojbanquest/lib/python2.6/site-packages/nagare/admin/db.py", line 48, in read_options
    (cfgfile, app, dist, aconf) = util.read_application(args[0], error)
  File "/home/timo/coding/lojbanquest/lib/python2.6/site-packages/nagare/admin/util.py", line 251, in read_application
    (app, dist) = load_object(aconf['application']['path'])
  File "/home/timo/coding/lojbanquest/lib/python2.6/site-packages/nagare/admin/util.py", line 150, in load_object
    return loaders[scheme](path, o)
  File "/home/timo/coding/lojbanquest/lib/python2.6/site-packages/nagare/admin/util.py", line 61, in load_app
    return load_entry_point(app, 'nagare.applications')
  File "/home/timo/coding/lojbanquest/lib/python2.6/site-packages/nagare/admin/util.py", line 48, in load_entry_point
    return (entry_point.load(), entry_point.dist)
  File "/home/timo/coding/lojbanquest/lib/python2.6/site-packages/distribute-0.6.10-py2.6.egg/pkg_resources.py", line 1948, in load
    entry = __import__(self.module_name, globals(),globals(), ['__name__'])
  File "/home/timo/coding/lojbanquest/quest/quest.py", line 8, in <module>
    from quest import models
  File "/home/timo/coding/lojbanquest/quest/models.py", line 16, in <module>
    class Door(Base):
  File "/home/timo/coding/lojbanquest/lib/python2.6/site-packages/sqlalchemy/ext/declarative.py", line 830, in __init__
    _as_declarative(cls, classname, cls.__dict__)
  File "/home/timo/coding/lojbanquest/lib/python2.6/site-packages/sqlalchemy/ext/declarative.py", line 823, in _as_declarative
    cls.__mapper__ = mapper_cls(cls, table, properties=our_stuff, **mapper_args)
  File "/home/timo/coding/lojbanquest/lib/python2.6/site-packages/sqlalchemy/orm/__init__.py", line 818, in mapper
    return Mapper(class_, local_table, *args, **params)
  File "/home/timo/coding/lojbanquest/lib/python2.6/site-packages/nagare/database.py", line 31, in __init__
    super(Mapper, self).__init__(cls, *args, **kw)
  File "/home/timo/coding/lojbanquest/lib/python2.6/site-packages/sqlalchemy/orm/mapper.py", line 211, in __init__
    self._configure_pks()
  File "/home/timo/coding/lojbanquest/lib/python2.6/site-packages/sqlalchemy/orm/mapper.py", line 488, in _configure_pks
    (self, self.mapped_table.description))
sqlalchemy.exc.ArgumentError: Mapper Mapper|Door|doors could not assemble any primary key columns for mapped table 'doors'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment