我有一个带有 MySQL 数据库的Flask项目,并使用 SQLAlchemy 作为ORM,使用 Flask-Migrate *进行迁移。
我编写了模型,当我运行迁移时,迁移文件为空,因为现有表格不在 Flask-Migrate 控件之内,所以我实际上必须删除这些表格让迁移工具再次检测和创建。但问题是我不想删除和创建我的表。
那么有什么方法可以将我的模型与现有的表同步?
编辑: 我刚刚发现在env.py文件中,可以指定存在的表 它不会创建这些表:
metadata.reflect(engine, only=["table1", "table2"])
感谢您的回答。
答案 0 :(得分:2)
根据定义,自动迁移是作为模型和数据库之间的增量生成的。如果您已经拥有在开始使用Flask-Migrate / Alembic之前创建的数据库,那么您可以从该点开始跟踪迁移。
如果要生成初始迁移,将您带到当前版本,最简单的方法是删除所有表,如您所建议的那样。为避免丢失数据,我可以提出两点建议:
我希望这会有所帮助。