Как создать внешний ключ для таблицы, которая не является частью SQLAlchemy ORM?
Я пытаюсь создать FK к таблице, которая управляется Django ORM, однако SQLA похоже, это не нравится.
class SomeSAModel(DeclarativeBase):
user_id: Mapped[int] = mapped_column(
sa.ForeignKey("users_customuser.id") # this is a reference to a Django table
)
И вот какую ошибку я получаю, когда запускаю alembic revision --autogenerate
Если Django управляет таблицей, к имени столбца будет добавлен суффикс (_id
) для FK. Вы должны явно передать имя столбца в mapped_column.
Насколько я помню, что-то вроде этого:
mapped_column("customuser_id", sa.ForeignKey("users_customuser.id"))
Дважды проверьте имя столбца.
Но я так и не понял, почему вы также используете Alembic для Django-управляемой базы данных.