【问题标题】:Flask migration error when using flask-migrate使用 flask-migrate 时出现 Flask 迁移错误
【发布时间】:2020-03-15 01:05:31
【问题描述】:

我似乎无法让Flask 迁移我的模型。我正在关注Flask Mega-Tutorial series。在本教程的数据库设置部分,我只是想用MySQL 替换本教程中使用的SQLite。 我按照SQLAlchemy 的说明连接到MySQL 数据库,并在我的pipfile 中包含mysqlclient。 但是当我运行时:

flask db init
flask db migrate

我得到以下信息:

INFO  [alembic.runtime.migration] Context impl SQLiteImpl.
INFO  [alembic.runtime.migration] Will assume non-transactional DDL.
ERROR [root] Error: Can't locate revision identified by '7bb962b87f19'

我已尝试删除迁移文件夹,我已删除环境并重新创建以查看是否可以解决任何问题。但它一直在说can't locate revision。我想也许它对数据库做了什么,我读过其他解决方案说你必须刷新数据库。但是,数据库中没有创建任何表或任何模式。

其他信息:

DATABASE_URL="mysql://root:mypassword@localhost/flask_tutorial"

SQLite 数据库运行良好并进行迁移。所以这一定是我对 mysql 设置所做的事情。

任何可能引导我走向正确方向的建议或想法将不胜感激。

【问题讨论】:

  • 当你“删除环境”时是否也删除了数据库中的迁移表?
  • 不幸的是,从未创建过表格。
  • Alembic 在您第一次运行 flask db init 时会创建一个名为 alembic_version 的表。如果该表在您的数据库中(很可能是),您将需要删除该表并再次尝试初始化。
  • 不幸的是没有。希望是这样我可以删除它。
  • Flask-Migrate 的输出表明应用仍然认为它是为 SQLite 配置的。你注意到了吗?第一行写着Context impl SQLiteImpl。您需要调查为什么您所做的配置更改没有生效。

标签: mysql flask sqlalchemy flask-migrate


【解决方案1】:

会话存储了错误的导出环境变量。必须完全重新启动我的机器才能重置设置。我什至为变量尝试了unset,它没有删除变量。一旦 Flask 能够为我的配置选择正确的变量设置,一切都会按计划进行。

【讨论】:

    【解决方案2】:

    请确保您已使用此“SQLALCHEMY_TRACK_MODIFICATIONS=True”

    【讨论】:

    • 遗憾的是,即使设置为“True”,我也会遇到同样的错误。
    【解决方案3】:

    您是否安装了 MySqldb 库。连接你的 mysql 数据库?

    【讨论】:

    • 我做到了。在这个实例之前我已经能够连接。
    【解决方案4】:

    我有同样的问题。我已经删除了 migrations 文件夹,但没有对 app.db 文件执行相同的操作。因此,每次我尝试创建任何数据库迁移时,它都会失败,因为它使用的是旧的(并且仍然存在的)app.db 文件。

    这是我的数据库的配置方式:

    class Config(object):
        # Database configuration
        SQLALCHEMY_DATABASE_URI = os.environ.get('DATABASE_URL') or \
            'sqlite:///' + os.path.join(basedir, 'app.db')
        SQLALCHEMY_TRACK_MODIFICATIONS = False
    

    删除app.db 文件解决了错误。随后的数据库迁移和升级运行良好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-08
      • 1970-01-01
      • 2019-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-02
      • 1970-01-01
      相关资源
      最近更新 更多