Sqlalchemy 使用Alembic+;中的反射表进行自动迁移;炼金术

Sqlalchemy 使用Alembic+;中的反射表进行自动迁移;炼金术,sqlalchemy,flask-sqlalchemy,alembic,Sqlalchemy,Flask Sqlalchemy,Alembic,我正在为我们的项目建立alembic,它已经非常大了,有很多表。问题是,我们项目的数据库已经通过SQL管理了很长一段时间,我们的炼金术模型几乎都是这样反映的(我模糊了名称,但其余的都直接来自我们的代码): 发生的事情是,当我创建一个自动迁移时,出于某种原因创建了很多drop table(和很多create table)操作。我认为这是因为model类没有显式定义表,但我不明白为什么会删除表 在env.py中设置target\u metadata变量之前,我要确保所有模型定义都已处理完毕: # t

我正在为我们的项目建立alembic,它已经非常大了,有很多表。问题是,我们项目的数据库已经通过SQL管理了很长一段时间,我们的炼金术模型几乎都是这样反映的(我模糊了名称,但其余的都直接来自我们的代码):

发生的事情是,当我创建一个自动迁移时,出于某种原因创建了很多drop table(和很多create table)操作。我认为这是因为model类没有显式定义表,但我不明白为什么会删除表

env.py
中设置
target\u metadata
变量之前,我要确保所有模型定义都已处理完毕:

# this imports every model in our app

from shiphero_app.utils.sql_dependencies import import_dependencies
import_dependencies()

from shiphero_app.core.database import Base
target_metadata = Base.metadata

你知道我在这里遗漏了什么吗?

这可能就是你要找的-这使得Alembic忽略了预定义的表:


不幸的是,这也阻止了Alembic删除范围内的表

在运行迁移生成之前,您是否检查了env.py中的元数据?@AlexGrönholm如何检查?您的意思是调试?可能此链接(“无法检测”部分)将有助于:
# this imports every model in our app

from shiphero_app.utils.sql_dependencies import import_dependencies
import_dependencies()

from shiphero_app.core.database import Base
target_metadata = Base.metadata