我们在升级系统的时候,经常碰到需要更新服务器端数据结构等操作,之前的方式是通过手工编写alter sql脚本处理,经常会发现遗漏,导致程序发布到服务器上后无法正常使用。

现在我们可以使用Flask-Migrate插件来解决之,Flask-Migrate插件是基于Alembic,Alembic是由大名鼎鼎的SQLAlchemy作者开发数据迁移工具。

具体操作如下:

1. 安装Flask-Migrate插件

$ pip install Flask-Migrate

2. 修改Flask App部分的代码,以增加Migrate相关的Command

db = SQLAlchemy(app)
migrate = Migrate(app, db)manager = Manager(app)
manager.add_command('db', MigrateCommand)

3. 初始化

$ python app.py db init

4. 数据迁移,自动创建迁移代码

$ python app.py db migrate

5. 更新数据库

$ python app.py db upgrade

后面如果有Model变更的话,在开发环境下只需要重复执行第4、5步即可。

而在服务器端只需要执行第5步即可实现数据库的迁移工作。

转载于:https://www.cnblogs.com/zknublx/p/7133680.html

使用Flask-Migrate进行管理数据库升级相关推荐

  1. 用 Flask 来写个轻博客 (8) — (M)VC_Alembic 管理数据库结构的升级和降级

    Blog 项目源码:https://github.com/JmilkFan/JmilkFan-s-Blog 目录 目录 前文列表 扩展阅读 Alembic 查看指令 manager db 的可用选项 ...

  2. Oracle图书馆借阅管理数据库,图书馆管理系统Oracle数据库平台升级研究

    随着现在计算机网络的发展,数字化图书凭着其发行的速度快.借阅的方便,并且没有时间和空间的限制逐渐成为未来图书馆发展中的一种趋势.我图书馆使用了汇文文献信息服务系统,该系统是江苏省教委资助,江苏省高校合 ...

  3. 【板栗糖GIS】arcmap—如何对数据库进行管理与升级(综合篇)

    [板栗糖GIS]arcmap-如何对数据库进行管理与升级(综合篇) 目录 1. 管理数据库 2. 创建文件地理数据库工具箱 3. 升级数据库 4. 数据打包工具 1. 管理数据库 在数据库上右击,管理 ...

  4. Maven学习总结(33)——开发人员如何使用 Flyway 插件管理数据库版本

    一.前言. 想到要管理数据库的版本,是在实际产品中遇到问题后想到的一种解决方案,当时各个环境的数据库乱作一团,没有任何一个人(开发.测试.维护人员)能够讲清楚当前环境下的数据库是哪个版本,与哪个版本的 ...

  5. Web后端学习笔记 Flask(7)数据库

    高级查询: 1. group_by 根据某个字段进行分组,比如说需要根据某个字段分组,来统计每组有多少人. 2. having having是对查询结果进一步过滤,比如只想看到未成年人的数量,那么首先 ...

  6. Mysql生产环境表更新方案_生产环境中,数据库升级维护的最佳解决方案flyway

    官网:https://flywaydb.org/ 转载:http://casheen.iteye.com/blog/1749916 1.  引言 想到要管理数据库的版本,是在实际产品中遇到问题后想到的 ...

  7. SqlAlchemy Alembic数据库升级与降级简易教程

    前言 通常我们会将我们的代码放入到某个VCS(版本控制系统)中,进行可追溯的版本管理.一个项目除了代码,通常还会有一个数据库,这个数据库可能会随着项目的演进发生变化,甚至需要可以回滚到过去的某个状态, ...

  8. flyway版本号_Flyway 管理数据库版本变更

    logo 一. Flyway介绍 Flyway的定位:数据库的版本控制. Flyway是一款开源的数据库版本管理工具,Flyway可以独立于应用实现管理并跟踪数据库的变更(DDL和DML语句),Fly ...

  9. 成为MySQL DBA 博客系列-数据库升级

    数据库供应商通常每个月都会发布一些有bug /安全性修补程序的补丁,我们为什么要关心?新的版本可能对关于安全漏洞和黑客入侵系统的修复,所以除非安全性不被关注,否则您可能希望在您的系统上安装最新的安全修 ...

最新文章

  1. react单选框获取值
  2. NET_NET深入体验与实战 第一章 .NET你知道 1.1什么是 .NET
  3. pom文件报错_解决mac下tess4j文字识别报错问题
  4. 使用JAX-RS的HTTP缓存
  5. git fork clone 区别_Working with Git | Git 与 GitHub
  6. Angularjs $http.post
  7. 1235813找规律第100个数_中考数学专题 - -找规律总结题 -
  8. np.max()、np.argmax()、np.maximum()、np.min()、np.argmin()、np.minimum()、np.sum()
  9. A novel hybrid intrusion detection method integrating anomalydetection with misuse detection
  10. 高通骁龙芯片的随身wifi入门刷机教程
  11. 教师人生格言积极向上的句子
  12. 苹果cms重名视频怎么合并
  13. android中出现javax.net.ssl.SSLPeerUnverifiedException的解决方案
  14. 5 款可替代 du 命令的工具
  15. Kubernetes:dashboard 搭建(k8s -web端管理)
  16. AMA预告|章鱼加速器如何在熊市助力 Web3 创业
  17. 将 MobaXterm 的高亮/突出显示集功能(HighLight sets)移植到 Xshell 中使用
  18. 当青春走到尽头你会想念你自己吗
  19. 阿里云推荐码 9折优惠 vx89to
  20. NetNut住宅代理,超500万个IP可选!

热门文章

  1. e生保等待期什么意思_买了保险不知道赔什么?一文看懂【保险责任】
  2. 最速下降法极小化rosenbrock函数 代码_典型算法思想与应用9|分支限界法与电路布线问题
  3. 风变Python6---布尔值,break,continue,pass,else等语句的学习
  4. python matplotlib 保存图片失真_Python matplotlib线框失真
  5. oracle导出数据带where,CSS_指定一个where条件来有条件地导出记录,在Oracle数据库中,exp中的query - phpStudy...
  6. python的类和对象例题_Python类、类对象和实例对象、组合、绑定详细讲解
  7. python requests text content_python 3 关于requests库的 text / content /json
  8. 运筹优化(十一)--无约束非线性规划
  9. 人脸对齐(二)--ASM算法
  10. 目标跟踪算法的分类(二)