Flask数据库迁移工具

由于模型中经常会新加一行或几行column (比如用来保存账户的确认状态),此时要修改 models.py,并执行一次新数据库迁移(能够保存之前的数据),Flask-Migrate可以实现这个功能。

from app import create_app, db  
from flask_script import Manager, Shell  
from flask_migrate import Migrate, MigrateCommand  
app = create_app(os.getenv('FLASK_CONFIG') or 'default')  
migrate = Migrate(app, db)  
manager.add_command('db', MigrateCommand) 

第一次使用:

1.初始化:(venv)  python manage.py db init 这个命令会在项目下创建 migrations 文件夹,所有迁移脚本都存放其中。
2.创建第一个版本:(venv) $ python manage.py db migrate -m "initial migration"  检查migrations\versions,会新建一个版本.py,检查里面表格及字段
3.运行升级 (venv) $ python manage.py db upgrade,会把项目使用的数据库文件,更新为新的表格、字段,同时保留数据

以上操作会在项目目录下生成一个migration目录,以及数据库中新增一张version表。

后续数据库迁移:

python manage.py db migrate
python manage.py db upgrade

遇到的问题:
数据库无法迁移,报错如下:

alembic.util.exc.CommandError: Can't locate revision identified by 'a570bb807bff

问题原因:数据库版本对不上
解决方案:删除数据库中的version表,删除migration目录
来源:

https://stackoverflow.com/questions/20973145/cannot-complete-flask-migration
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容