Flask学习(八) - Flask-migrate

  • Flask-Migrate用作对数据的迁移,类似Django里面的python manage.py migrate,每次我们如果需要对数据库的模型进行修改时,因为db.create_all()方法不会自动映射到数据库中,必须先删除表然后再重新执行命令才会重新映射,在实际开发中我们不可能将非空数据库直接删除然后重建,这不符合需求,所以就出现了Flask-Migrate,实现即时数据迁移

安装

pip install Flask-Migrate

使用

  • 一般Flask-Migrate在manager中执行调用,详情参加前文
  • 三步骤:
    1. 绑定app和db
    2. 添加命令,MigrateCommand中集合了所有与数据库相关的命令
    3. 执行
from flask_script import Manager
from app import app
from flask_migrate import Migrate, MigrateCommand
from exts import db
from models import Article
manager = Manager(app)

#绑定app和db
migrate = Migrate(app, db)
#添加MigrateCommand命令
manager.add_command('db', MigrateCommand)

if __name__ == '__main__':
    manager.run()

执行

在执行过程中我也踩了不少坑,这里着重要提的就是第一次执行,这里的表得是最新的表,不然会抛出如下警告


image.png
  • 三步骤

1.生成迁移文件夹migrations,它会自动创建一系列初始化文件(仅首次需要执行)

python manage.py db init
image.png
  1. 将模型生成为迁移文件
python manage.py db migrate
image.png
  1. 映射表
python manage.py db upgrade
image.png
  • version里面记录的是一些版本信息


    image.png

之后再有数据字段变化就可以更改字段后,执行后两步即可

  • 注意:要映射到数据库中的模型一定要在manage.py中导入
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 22年12月更新:个人网站关停,如果仍旧对旧教程有兴趣参考 Github 的markdown内容[https://...
    tangyefei阅读 35,223评论 22 257
  • flask基本讲解 ''' ''' debug模式 在app.run()中传入一个关键字参数debug,app.r...
    简单的小学生阅读 852评论 0 8
  • tags: python flask 计算机体系 艾兰•图灵(Turing)❤ &冯•诺依曼(Neumann)艾...
    33jubi阅读 1,769评论 1 9
  • 再看一眼这天地,大美,不言。丁酉蜀地游记。 我离开九寨时,通往机场的路上心里反复的默念:让我再看一眼这天地。眼前美...
    米豆厥词阅读 305评论 2 4
  • 今天读《麦肯锡思维》后半部分,感觉有点“陈旧”,比如,“企业管理者随时关注所收购,或新成立的公司的动态”,集体决策...
    郭强GQ阅读 183评论 0 0