Hi All,
Start off with a base.py module:
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
Now, say we have a module, a.py:
from sqlalchemy import *
from base import Base
class Something(Base):
__tablename__ = 'foo'
id = Column('id', Integer, primary_key=True)
...and another module, b.py:
from sqlalchemy import *
from base import Base
class Something(Base):
__tablename__ = 'bar'
id = Column('id', Integer, primary_key=True)
...and finally, a third module, c.py:
from sqlalchemy import *
from sqlalchemy.orm import relationship
from base import Base
import a,b
class AnotherThing(Base):
__tablename__ = 'baz'
id = Column('id', Integer, primary_key=True)
addresses = relationship("Something")
...what table will that relationship be to?
>>> import c
>>> c.AnotherThing._decl_class_registry['Something']
<class 'b.Something'>
I think an exception should be raised if a class name already exists in
_decl_class_registry when the assignment is made in _as_declarative.
Are there any cases where it would be legit to have one class override
another in _decl_class_registry in this way?
If the answer is no, I'll commit a test and patch asap...
cheers,
Chris
PS: Also, in the above, how come no foreign keys are created?
>>> c.AnotherThing.__table__.foreign_keys
OrderedSet([])
>>> import b
>>> b.Something.__table__.foreign_keys
OrderedSet([])
>>> import a
>>> a.Something.__table__.foreign_keys
OrderedSet([])
--
You received this message because you are subscribed to the Google Groups
"sqlalchemy" group.
To post to this group, send email to sqlalch...@googlegroups.com.
To unsubscribe from this group, send email to
sqlalchemy+unsubscr...@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/sqlalchemy?hl=en.