alembic/env.py target_metadata = 元数据 "No module name al_test.models"

标签 alembic

当我使用 alembic 来控制我的项目数据库的版本时,env.py 中的部分代码
像:

# add your model's MetaData object here
# for 'autogenerate' support
# from myapp import mymodel
# target_metadata = mymodel.Base.metadata
from al_test.models import metadata

target_metadata = metadata

当我运行 'alembic revision --autogenerate -m "Added user table"' 时,出现错误:
文件“alembic/env.py”,第 18 行,在
从 al_test.models 导入元数据
ImportError:没有名为 al_test.models 的模块

那么如何解决这个问题呢?谢谢!

最佳答案

像这样更新您的 env.py,将当前工作目录添加到 Python 在搜索模块时使用的 sys.path:

import os
import sys
sys.path.append(os.getcwd())

from al_test.models import metadata
target_metadata = metadata
....
....

关于alembic/env.py target_metadata = 元数据 "No module name al_test.models",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16076480/

相关文章:

python - Alembic 试图删除我的表

python - 字段默认时间戳设置为表创建时间而不是行创建时间

sqlalchemy - 没有数据库的 Alembic 迁移

python - 如何手动生成更新枚举列的 alembic 迁移脚本

sqlalchemy - Alembic、SQLAlchemy 和项目内的多个 "apps"

python - 如何在 SQLAlchemy 中表示自定义 PostgreSQL 域?

python - 如何以编程方式设置 Alembic 所需的 'target_metadata' 以便与命令 API 一起使用?

python - 如何使用 alembic --autogenerate 忽略某些模式

python - PostgreSQL 模式和无效的一对多关系的 Alembic 迁移问题

python - 以编程方式获取 Alembic 数据库版本