Используя SQLALCHEMY 1.4, в приложении FASTAPI мне необходимо импортировать все модели, прежде чем выполнять base.metadata.create_all () . Есть много таблиц с несколькими релятиносипами. < /P>
Как мне сделать, чтобы импортировать все таблицы? У меня есть 2 рабочего решения прямо сейчас:
1.dd Все импорты в __init __. py в каком -то модуле, который, я уверен, всегда будет импортирован (я могу Это сделайте это в основном файле, потому что в проекте есть другой основной файл на среду). В этом подходе все FK объявляются следующим образом: < /p>
class TableA(Base):
table_b = relatonship("TableB")
class TableB(Base):
table_a = relatonship("TableA")
< /code>
В каждой таблице, которая имеет отношение, попробуйте импортировать соответствующую таблицу, например, если у меня есть таблица и таблица, и Таблица имеет fk to tableb. < /Li>
< /ol>
в table_a.py:
from models.table_b import TableB
class TableA(Base):
table_b = relatonship(TableB)
< /code>
in table_b.py:
class TableB(Base):
table_a = relatonship("TableA")
< /code>
В Tableb отношения не могут импортировать таблицу из -за круговых импортов. < /p>
Я не уверен, какой подход лучше, и я могу ' Не нашел какой -либо стандарт для этого < /p>
Я уже посмотрел его на другие проекты с похожими настройками, но всегда слишком просты по сравнению с тем, что я пытаюсь сделать, обычно почти без отношений .
Я также проверил варианты, которые я спросил, и оба работают, но, как я объяснил, не уверен, какой из них лучше < /p>
Подробнее здесь: https://stackoverflow.com/questions/794 ... emy-tables
Лучший способ объявить столы SQLALCHEMY ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение