首页域名资讯 正文

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

2024-09-14 2 0条评论

项目创建后,针对表结构更改,可以使用Flask-Migrate来解决。Flask-Migrate插件是基于Alembic,Alembic是由大名鼎鼎的SQLAlchemy作者开发数据迁移工具。

安装

1 pip install Flask Migrate

添加Migrate相关的Command

1 2 3 4 5 6 7 8 9 10 11 12 13 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 ( )

初始化

1 python manage . py db init

这里的 init 只需要执行一次,以后的修改都不用执行了。同时,创建一个migrations文件夹,里面存放了所有迁移脚本。

创建迁移脚本

在Alembic,数据库迁移工作由迁移脚本完成。这个脚本有两个函数,分别叫做upgrade()和downgrade()。upgrade()函数实施数据库更改,是迁移的一部分,downgrade()函数则删除它们。通过添加和删除数据库变化的能力,Alembic可以重新配置数据库从历史记录中的任何时间点。

Alembic迁移可以分别使用revision和migrate命令手动或自动创建。手动迁移通过由开发人员使用Alembic的Operations对象指令实现的空upgrade()和downgrade()函数创建迁移框架脚本。另一方面,自动迁移通过寻找模型定义和数据库当前状态间的不同为upgrade()和downgrade()生成代码

1 python manage . py db migrate

更新数据库

一旦迁移脚本被审查且接受,就可以使用db upgrade命令更新到数据库中:

1 python manage . py db upgrade

 

文章转载来自:trustauth.cn

文章版权及转载声明

本文作者:亿网 网址:https://edns.com/ask/post/150756.html 发布于 2024-09-14
文章转载或复制请以超链接形式并注明出处。