使用 flask-migrate 时出现 Flask 迁移错误
Flask migration error when using flask-migrate
我似乎无法 Flask
迁移我的模型。我跟着 Flask Mega-Tutorial series。在教程的数据库设置部分,我只是试图用 MySQL
替换教程中使用的 SQLite
。
我按照 SQLAlchemy
的说明连接到 MySQL
数据库,并将 mysqlclient
包含在我的 pipfile 中。
但是当我 运行:
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 设置完成的。
任何可能引导我走向正确方向的建议或想法将不胜感激。
请确认您使用过这个"SQLALCHEMY_TRACK_MODIFICATIONS= True"
你有没有安装 MySqldb 库。连接到您的 mysql 数据库 ?
会话正在存储导出的不正确的环境变量。必须完全重启我的机器才能重置设置。我什至尝试 unset
变量,但没有删除变量。一旦 Flask 能够为我的配置选择正确的变量设置,一切都按计划进行。
我遇到了同样的问题。我删除了 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
文件解决了错误。随后的数据库迁移和升级运行良好。
我似乎无法 Flask
迁移我的模型。我跟着 Flask Mega-Tutorial series。在教程的数据库设置部分,我只是试图用 MySQL
替换教程中使用的 SQLite
。
我按照 SQLAlchemy
的说明连接到 MySQL
数据库,并将 mysqlclient
包含在我的 pipfile 中。
但是当我 运行:
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 设置完成的。
任何可能引导我走向正确方向的建议或想法将不胜感激。
请确认您使用过这个"SQLALCHEMY_TRACK_MODIFICATIONS= True"
你有没有安装 MySqldb 库。连接到您的 mysql 数据库 ?
会话正在存储导出的不正确的环境变量。必须完全重启我的机器才能重置设置。我什至尝试 unset
变量,但没有删除变量。一旦 Flask 能够为我的配置选择正确的变量设置,一切都按计划进行。
我遇到了同样的问题。我删除了 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
文件解决了错误。随后的数据库迁移和升级运行良好。