flask 中途修改数据库Model

Posted fiona-zhong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了flask 中途修改数据库Model相关的知识,希望对你有一定的参考价值。

 

在做项目的过程中,我们都遇到过,经常需要修改我们数据库的字段,在flask中,是通过ORM(对象关系映射)来创建数据库的,表--->model class,字段---->属性

在flask中,修改了model后,要同步数据库,需要用到flask_script 和 flask_migrate(pip install)

1、代码中配置环境

  在入口文件中:

  from flask_script import Manager

  from flask_migrate import Migrate, MigrateCommond

  from apps import instance_app, db

  app = instance_app()

  migrate = Migrate(app, db)

  manager = Manager(app)

  manager.add_command("db", MigrateCommond)

  

  @manager.command  

  def dev():

    from livereload import Server(pip install livereload)

    live_server = Server(app.wsgi_app)

    live_server.watch("**/*.*")

    live_server.server(open_url = True)

 

  if __name__ == "__main__":

    manager.run()

 

2、打开终端,进入项目根目录,执行下面命令

  python app.py(你的入口文件名) db init

  初始化成功后,你的项目目录多了一个migrattions文件夹

  技术分享图片

 

3、修改了model的字段后,执行下面的命令

  python app.py db migrate

  从执行过程中我们可以看到我们修改的字段

  技术分享图片

  执行完成后,再去查看生成的migrations文件夹,下面的versions里面会多出来一个.py的迁移脚本文件,检查表格及字段

  技术分享图片

 

3、更新数据库

  python app.py db upgrade

  upgrade会自动读取刚才生成的文件,将数据更新到数据库中。

  技术分享图片

  执行完成后,检查你的数据库,发现数据库字段按照我们的需要更新了。

 

4、回滚事物

  1)运行 python app.py db history

    查看历史版本,得到history-id

    技术分享图片

 

  2)运行 python app.py db downgrade history-id

    会退到指定历史版本

    技术分享图片

 

以上是关于flask 中途修改数据库Model的主要内容,如果未能解决你的问题,请参考以下文章

Flask SQLAlchemy & model

Flask AppBuilder Model Views

使用flask进行前端后台的数据交互

Python框架学习之Flask中的数据库操作

Flask 学习-71.Flask-RESTX 枚举类型Enum字段

python-flask-Flask-SQLAlchemy与Flask-Migrate联合进行数据化迁移