alembic / env.py target_metadata = metadata“没有模块名称al_test.models”

时间:2013-04-18 07:01:20

标签: 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"添加了用户表"',我收到错误:     文件" alembic / env.py",第18行,in     来自al_test.models导入元数据 ImportError:没有名为al_test.models的模块

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

2 个答案:

答案 0 :(得分:4)

这可能有点晚了,你可能已经找到了问题,但我猜测问题是你的alembic /目录不是系统路径的一部分。即你需要做类似的事情:

import sys
sys.path.append(path/to/al_test)

from al_test.models import metadata

答案 1 :(得分:1)

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

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

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