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

Sqlalchemy 有没有办法强制alembic跟踪导入的模型?,sqlalchemy,alembic,Sqlalchemy,Alembic,我正在尝试编写一个使用该项目进行身份验证的金字塔应用程序。在其中,auth的模型已经是apex项目的一部分,在运行时导入。Alembic似乎忽略了这些模型,即使我在env.py中导入它们 我尝试在自己的模型中从apex扩展类: from apex.models import ( AuthUser, AuthUserLog, AuthGroup, AuthID ) class EAuthUser(AuthUser): pass class EAuth

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

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

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忽略特定的表名,或者更好的是,让它跟踪并遵循另一个项目中的模型定义?

确保您的env.py引用这些模型使用的元数据以及运行env.py时使用的元数据,它导入了确保这些模块都被调用和导入所需的一切。

我没有意识到元数据是秘密的调味品;在这段时间里,我一直假设系统扫描从Base派生的类,并从那里开始工作。通过迭代元数据列表,我可以让一切正常工作。一如既往,你棒极了!非常感谢。