SQLAlchemy async: не добавляются записи в таблицу ассоциаций

Подскажите, пожалуйста, что я делаю не так?
Есть вот такой код. Таблицы создаются, таблицы моделей наполняются, все работает. Но не добавляются записи в таблицу ассоциаций. Код завершается без ошибок, но таблица drugs_diseases пустая.

models.py:

# Association table
drugs_diseases = Table(
    "drugs_diseases",
    Base.metadata,
    Column("drug_id", ForeignKey("drugs.id"), primary_key=True),
    Column("disease_id", ForeignKey("diseases.id"), primary_key=True),
)

class Disease(Base):
    __tablename__ = "diseases"
    id = Column(Integer, primary_key=True, index=True)
    name = Column(String)
    drugs = relationship("Drug", secondary=drugs_diseases, back_populates="diseases")

class Drug(Base):
    __tablename__ = "drugs"
    id = Column(Integer, primary_key=True, index=True)
    name = Column(String)
    diseases = relationship("Disease", secondary=drugs_diseases, back_populates="drugs")

orm_query.py:

async def orm_get_drug(
    async_session: async_sessionmaker[AsyncSession], name: str
) -> Drug:
    async with async_session() as session:
        query = select(Drug).where(Drug.name == name)
        drug = await session.scalar(query)
        await session.refresh(drug, attribute_names=["diseases"])

        return drug

async def orm_get_disease(
        async_session: async_sessionmaker[AsyncSession], name: str
) -> Disease:
    async with async_session() as session:
        query = select(Disease).where(Disease.name == name)
        disease = await session.scalar(query)
        await session.refresh(disease, attribute_names=["drugs"])

        return disease

async def orm_add_drug_disease(
        async_session: async_sessionmaker[AsyncSession], name_drug: str, name_disease
) -> None:
    async with async_session() as session:
        drug = await orm_get_drug(async_session, name_drug)
        disease = await orm_get_disease(async_session, name_disease)

        drug.diseases.append(disease)
        await session.commit()

Пытаюсь добавить запись в таблицу ассоциаций. Код завершается без ошибок, но запись в таблицу ассоциации не добавляется.

main.py:

...
# "Анальгин" уже есть в таблице Drug и "Зубная боль" есть в Disease
await orm_add_drug_disease(session_maker, "Анальгин", "Зубная боль")

if __name__ == "__main__":
    asyncio.run(main())

Ответы (0 шт):