我们在升级系统的时候,经常碰到需要更新服务器端数据结构等操作,之前的方式是通过手工编写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步即可实现数据库的迁移工作。

最新文章

  1. How to implement equals() and hashCode() methods in Java[reproduced]
  2. linux sed命令详解
  3. java中scanner类的用法
  4. Excel画的图复制到Word中变形的解决办法
  5. 理解SQL Server中的权限体系(上)----主体
  6. setsockopt中参数之SO_REUSEADDR的意义(转)
  7. http server 下载地址
  8. c++字符串机理
  9. 《Javascript模式》之对象创建模式读书笔记
  10. jQuery常用及基础知识总结(一)
  11. 2.2. 添加托管对象模型(Core Data 应用程序实践指南)
  12. 富文本,NSAttributedString,当需要改变的内容有相同的时候的解决方法
  13. Cannot resolve class or package 'mysql’
  14. 6 week work 1
  15. P4001 [ICPC-Beijing 2006]狼抓兔子
  16. mvc输出json时报HTTP Status 406错误
  17. python获取子进程的返回值
  18. SQL Server的分页优化及Row_Number()分页存在的问题
  19. MVC源码分析 - Error过滤器
  20. 2017.11.16 JavaWeb-------第八章 EL、JSTL、Ajax技术

热门文章

  1. .NET跨平台:在Mac上跟着错误信息一步一步手写ASP.NET 5程序
  2. Jquery最全过滤器总结
  3. 用jstl截取字符串
  4. Java Web指导方向
  5. html中的图片直接使用字符串代替
  6. com组件远程桌面rdp模块的调用
  7. Linux asyn-io for socket
  8. paip.http 404错误 的解决
  9. O2O已死?不!美团点评们迎来新风口
  10. iOS---内存优化