有没有办法强制alembic跟踪导入的模型?

时间:2015-10-07 19:44:51

标签: sqlalchemy alembic

我正在尝试编写一个使用cd34/apex项目进行身份验证的金字塔应用。其中,auth的模型已经是apex项目的一部分,它们是在运行时导入的。 Alembic似乎忽略了那些模型,即使我在env.py中导入它们。

我尝试在我自己的模型中从顶点扩展类:

from apex.models import (
    AuthUser,
    AuthUserLog,
    AuthGroup,
    AuthID
)


class EAuthUser(AuthUser):
    pass


class EAuthUserLog(AuthUserLog):
    pass


class EAuthGroup(AuthGroup):
    pass


class EAuthID(AuthID):
    pass

但是当我使用--autogenerate时,alembic仍然会删除表:

op.drop_table('auth_user_log')
op.drop_table('auth_users')
op.drop_table('auth_groups')
op.drop_table('auth_id')
op.drop_table('auth_auth_groups')

我能做些什么来使alembic忽略特定的表名,或者更好的是,让它跟踪并遵循另一个项目中的模型定义?

1 个答案:

答案 0 :(得分:2)

确保你的env.py引用这些模型使用的元数据,以及当env.py运行时,它会导入所有必需的东西,以确保这些模块都被调用和导入。