1.flask 数据迁移提示
INFO [alembic.runtime.migration] Context impl MySQLImpl.
INFO [alembic.runtime.migration] Will assume non-transactional DDL.
ERROR [root] Error: Can't locate revision identified by '18b4b18317fc'
检查下是否删除了migration下的历史版本
解决办法:删除mysql数据库下的
| alembic_version |
drop table alembic_version;
然后再migrate下,即可
应该是msql的版本控制器,我不是太懂。
2.models.py文件修改了字段长度,migrate提示
INFO [alembic.runtime.migration] Context impl MySQLImpl.
INFO [alembic.runtime.migration] Will assume non-transactional DDL.
INFO [alembic.env] No changes in schema detected.
解决办法:
找到migration下的env.py
找到
def run_migrations_online():
with connectable.connect() as connection:
context.configure(
compare_type=True,
connection=connection,
增加一行compare_type=True,
默认不会检查字段长度,
email=db.Column(db.String(64),unique=True) 修改
email=db.Column(db.String(32),unique=True)
alembic支持检测字段长度改变,设置compare_type为True可以检查出类型字段的改变比如字段长度,设置compare_server_default可以检查出设置的字段默认值的改变。
本文解决了Flask应用中遇到的数据迁移错误,当Alembic无法定位修订版本时,通过删除数据库中的alembic_version表并重新迁移来解决。同时,详细介绍了如何在修改models.py文件中字段长度后,通过在env.py中设置compare_type=True来让Alembic检测到这些变化。
1080

被折叠的 条评论
为什么被折叠?



