flask-migrate 管理升级迁移数据库

默北 pythonflask-migrate 管理升级迁移数据库已关闭评论13,3823字数 1044阅读3分28秒阅读模式

项目创建后,针对表结构更改,可以使用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/

weinxin
我的微信
微信公众号
扫一扫关注运维生存时间公众号,获取最新技术文章~
默北
  • 本文由 发表于 10/10/2016 01:40:16
  • 转载请务必保留本文链接:https://www.ttlsa.com/python/flask-migrate-management-database-upgrade-and-migrate/