我正在尝试编写一个使用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忽略特定的表名,或者更好的是,让它跟踪并遵循另一个项目中的模型定义?
答案 0 :(得分:2)
确保你的env.py引用这些模型使用的元数据,以及当env.py运行时,它会导入所有必需的东西,以确保这些模块都被调用和导入。