5
SQLAlchemy의 선언적 ORM을 사용하여 일대 다 관계를 정의하는 방법을 알아 내려고 the example을 작동 시키려고하지만 오류가 발생합니다. 내 하위 클래스 (이 나중에 선언 있기 때문에 ... 당연히) 발견SQLAlchemy 선언적 일대 다 정의되지 않은 오류
InvalidRequestError: When initializing mapper Mapper|Parent|parent, expression 'Child' failed to locate a name ("name 'Child' is not defined"). If this is a class name, consider adding this relationship() to the class after both dependent classes have been defined.
하지만 어떻게 오류없이, 나는이를 정의 할 수 없습니다?
코드 : 여기
from sqlalchemy import create_engine
from sqlalchemy import Column, Integer, ForeignKey
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker, relationship
from dev.historyMeta import VersionedMeta, VersionedListener
global engine, Base, Session
engine = create_engine('mysql+mysqldb://user:[email protected]:3306/testdb', pool_recycle=3600)
Base = declarative_base(bind=engine, metaclass=VersionedMeta)
Session = sessionmaker(extension=VersionedListener())
class Parent(Base):
__tablename__ = 'parent'
id = Column(Integer, primary_key=True)
children = relationship("Child", backref="parent")
class Child(Base):
__tablename__ = 'child'
id = Column(Integer, primary_key=True)
parent_id = Column(Integer, ForeignKey('parent.id'))
Base.metadata.create_all()