У меня есть следующие модели:
Код: Выделить всё
class Base(DeclarativeBase):
pass
class One(Base):
__tablename__ = "one"
id: Mapped[int] = mapped_column(primary_key=True)
twos: Mapped[List["Two"]] = relationship(back_populates="one")
class Two(Base):
__tablename__ = "two"
id: Mapped[int] = mapped_column(primary_key=True)
one_id: Mapped[int] = mapped_column(ForeignKey("one.id"))
one: Mapped["A"] = relationship(back_populates="twos")
Код: Выделить всё
class OneFactory(SQLAlchemyModelFactory):
class Meta:
model = models.One
sqlalchemy_session = db.session
id = Sequence(lambda n: n)
class TwoFactory(SQLAlchemyModelFactory):
class Meta:
model = models.Two
sqlalchemy_session = db.session
id = Sequence(lambda n: n)
one = SubFactory(OneFactory)
Код: Выделить всё
one = OneFactory()
two = TwoFactory(one=one)
db.session.commit()
Код: Выделить всё
Cannot add or update a child row: a foreign key constraint fails
- , та же проблема
Код: Выделить всё
RelatedFactoryList
- , та же проблема
Код: Выделить всё
SubFactory
- использование sqlalchemy_session_factory и sqlalchemy_session_persistence; происходит сбой из-за того, что экземпляры удерживаются в разных сеансах, или потому, что экземпляр был удален, или его строка отсутствует по иным причинам
Подробнее здесь: https://stackoverflow.com/questions/783 ... -test-data