如何让alembic从Flas中的多个模型文件中识别模型

2024-05-10 05:22:30 发布

您现在位置:Python中文网/ 问答频道 /正文

所以在Flask中我有models.py,它包含了我所有的模型定义。我想把它分成models目录下的多个模型文件。在

我尝试添加一些模型文件,比如models/user_model.pymodels/booking_model.py等,但是alembic似乎没有检测到这些文件中的模型。在

在标准中亚历姆比奇.ini我有一个烧瓶:

# A generic, single database configuration. [alembic] # template used to generate migration files # file_template = %%(rev)s_%%(slug)s # set to 'true' to run the environment during # the 'revision' command, regardless of autogenerate # revision_environment = false # Logging configuration [loggers] keys = root,sqlalchemy,alembic [handlers] keys = console [formatters] keys = generic [logger_root] level = WARN handlers = console qualname = [logger_sqlalchemy] level = WARN handlers = qualname = sqlalchemy.engine [logger_alembic] level = INFO handlers = qualname = alembic [handler_console] class = StreamHandler args = (sys.stderr,) level = NOTSET formatter = generic [formatter_generic] format = %(levelname)-5.5s [%(name)s] %(message)s datefmt = %H:%M:%S

我需要在这里添加一些东西来让alembic识别这些模型吗?在


Tags: 文件topy模型modelsqlalchemymodelshandlers
2条回答

为了完成这个答案,你可以直接把你所有的“基础”放在这样一个列表中:

from myapp.mymodel1 import Model1Base
from myapp.mymodel2 import Model2Base
target_metadata = [Model1Base.metadata, Model2Base.metadata]

链接到文档:http://alembic.zzzcomputing.com/en/latest/autogenerate.html#autogenerating-multiple-metadata-collections

你需要编辑环境保护公司名称:

# add your model's MetaData object here
# for 'autogenerate' support
from your_cool_app.models import *
target_metadata = db.Model.metadata

相关问题 更多 >