项目创建后,针对表结构更改,可以使用Flask-Migrate来解决。Flask-Migrate插件是基于Alembic,Alembic是由大名鼎鼎的SQLAlchemy作者开发数据迁移工具。
安装
pip install Flask-Migrate
添加Migrate相关的Command
from app import create_app, db from app.models import Users , Users_detail #注册数据库模型 from flask_script import Manager, Shell from flask_migrate import Migrate, MigrateCommand #载入migrate扩展 app = create_app('default') manager = Manager(app) migrate = Migrate(app, db) #注册migrate到flask manager.add_command('db', MigrateCommand) #在终端环境下添加一个db命令 if __name__ == '__main__': manager.run()
初始化
python manage.py db init
这里的 init 只需要执行一次,以后的修改都不用执行了。同时,创建一个migrations文件夹,里面存放了所有迁移脚本。文章源自运维生存时间-https://www.ttlsa.com/python/flask-migrate-management-database-upgrade-and-migrate/
创建迁移脚本
在Alembic,数据库迁移工作由迁移脚本完成。这个脚本有两个函数,分别叫做upgrade()和downgrade()。upgrade()函数实施数据库更改,是迁移的一部分,downgrade()函数则删除它们。通过添加和删除数据库变化的能力,Alembic可以重新配置数据库从历史记录中的任何时间点。文章源自运维生存时间-https://www.ttlsa.com/python/flask-migrate-management-database-upgrade-and-migrate/
Alembic迁移可以分别使用revision和migrate命令手动或自动创建。手动迁移通过由开发人员使用Alembic的Operations对象指令实现的空upgrade()和downgrade()函数创建迁移框架脚本。另一方面,自动迁移通过寻找模型定义和数据库当前状态间的不同为upgrade()和downgrade()生成代码。文章源自运维生存时间-https://www.ttlsa.com/python/flask-migrate-management-database-upgrade-and-migrate/
python manage.py db migrate
更新数据库
一旦迁移脚本被审查且接受,就可以使用db upgrade命令更新到数据库中:文章源自运维生存时间-https://www.ttlsa.com/python/flask-migrate-management-database-upgrade-and-migrate/
python manage.py db upgrade
Flask-Migrate 介绍参见: https://flask-migrate.readthedocs.io/en/latest/文章源自运维生存时间-https://www.ttlsa.com/python/flask-migrate-management-database-upgrade-and-migrate/ 文章源自运维生存时间-https://www.ttlsa.com/python/flask-migrate-management-database-upgrade-and-migrate/

评论