• Flask项目中数据库迁移的使用


    数据库迁移

    • 在开发过程中,需要修改数据库模型,而且还要在修改之后更新数据库。最直接的方式就是删除旧表,但这样会丢失数据。
    • 更好的解决办法是使用数据库迁移框架,它可以追踪数据库模式的变化,然后把变动应用到数据库中。
    • 在Flask中可以使用Flask-Migrate扩展,来实现数据迁移。并且集成到Flask-Script中,所有操作通过命令就能完成。
    • 为了导出数据库迁移命令,Flask-Migrate提供了一个MigrateCommand类,可以附加到flask-script的manager对象上。

      首先要在虚拟环境中安装Flask-Migrate。

      pip install flask-migrate
    • 以下为实现数据库迁移的代码层面设置(未定义具体的数据库):
    • from flask import Flask  # 导入flask
      from flask_sqlalchemy import SQLAlchemy   # 导入SQLALchemy
      from flask_migrate import Migrate,MigrateCommand  # 导入Migrate
      from flask_script import Manager     # 导入终端命令
      
      app = Flask(__name__)      # 初始化Flask
      manager = Manager(app)     # 创建终端命令对象
      
      app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:mysql@127.0.0.1:3306/Flask_test'      # 链接数据库
      app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True                   # 开启事件追踪
      db = SQLAlchemy(app)   # 初始化数据库对象
      
      # 使用迁移类将应用和数据库连接对象保存, 第一个参数是Flask的实例,第二个参数是Sqlalchemy数据库实例
      migrate = Migrate(app,db) 
      
      # 将数据库的迁移命令添加到manager中
      manager.add_command('db',MigrateCommand)

      以下为终端命令层面操作数据库迁移

      #这个命令会创建migrations文件夹,所有迁移文件都放在里面,初始化时设置
      python database.py db init

      # 创建迁移脚本(给迁移文件起备注名) -m 后面为备注名
      python database.py db migrate -m 'initial migration'
      
      # 更新数据库
      python database.py db upgrade

      # 查看以前的版本
      
    python app.py db history

      # 回滚到指定版本
      python app.py db downgrade 版本号

      有不同简介欢迎交流
     
     

     
  • 相关阅读:
    QT5.4 vs2013静态加载插件的sqlite静态编译
    四个漂亮的CSS样式表
    程序猿写的程序将如何打包成安装包(最简单)
    cocos2d的-X- luaproject的LUA脚本加密
    【【分享】深入浅出WPF全系列教程及源码 】
    C#的StringBuilder 以及string字符串拼接的效率对照
    【Android中Broadcast Receiver组件具体解释 】
    【蜗牛—漫漫IT路之大学篇(九) 】
    【分布式存储系统sheepdog 】
    C#异步调用
  • 原文地址:https://www.cnblogs.com/skaarl/p/9356957.html
Copyright © 2020-2023  润新知