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
可以检查出设置的字段默认值的改变。