我有烧瓶迁移(版本 1.8.0)在开发环境中与 sqlite 数据库配合良好。现在我想将我们的数据迁移到 MySQL 并维护我们所有的迁移历史(因此它与我们的 git 存储库中的 Flask-SQLAlchemy 模型保持同步)。
我创建了一个空的 MySQL 数据库,在更改了我的 SQLALCHEMY_DATABASE_URI 之后,我尝试运行:
python manage.py db upgrade
这导致无法删除表 migrate_version 的错误。(这是有道理的,因为这是一个新数据库,尽管 sqlite 实际上包含表 'alembic_version' 而不是 'migrate_version'。)
所以,我尝试初始化这个新数据库:
python manage.py db init
现在我收到一个错误:“目录迁移已经存在”。
我可以重命名该文件夹并毫无问题地重新运行该命令,但随后我丢失了所有以前的迁移。我认为当我们也过渡到我们的测试和生产环境时,我们也会遇到同样的问题。
我在文档中看到 Flask-Migrate 有多个数据库支持,但我认为这看起来更适合在单个开发环境中维护多个数据库。有没有办法让 Flask-Migrate 跨多个开发环境跟踪更改?