zoukankan      html  css  js  c++  java
  • 细说flask数据库迁移

    什么情况下要用数据库迁移?

      在开发过程中,需要修改数据库模型,而且还要在修改之后更新数据库。最直接的方式就是删除旧表,但这样会丢失数据。
      更好的解决办法是使用数据库迁移框架,它可以追踪数据库模式的变化,然后把变动应用到数据库中。

      数据库迁移命令,Flask-Migrate提供了一个MigrateCommand类,可以附加到flask-script的manager对象上。

    安装方法: pip  install  flask-migrate

    from flask import Flask  # 导入flask包
    from config import dict_config # 导入配置文件的类
    from flask_script import Manager # 导入flask-script包
    from flask_migrate import Migrate,MigrateCommand # 导入flask-migrate包
    app = Flask(__name__)  # 实例化flask对象
    app.config.from_object(dict_config['config']) # 配置文件封装了正式模式、测试模式等各种模式的类,以字典的方式存储,这是通过键值对的方式选择要用的模式的类
    manage = Manager(app)  # manager实例化对象
    migrate = Migrate(app,db) # 第一个参数是flask的实例,第二个参数是sqlalchemy数据库实例

    manage.add_command('db',MigrateCommand) # manager是flask—script的实例,这条语句在flask-script中添加一个db命令

    if __name__ == '__main__':
    manage.run() # flask-script可以通过manager对象启动服务
    # app.run()

    数据库迁移命令:
    在terminal命令窗口下执行:
    1、 python database.py db init # 这个命令会创建migration文件夹,所有迁移文件都放在里面
    2、
    python database.py db migrate -m 'initial migration' # 创建迁移脚本,-m后面跟的是此次数据库迁移的备注
    3、 python database.py db upgrade # 更新数据库
    数据库更新成功后,在数据库中自动创建一个名为‘alembic_version‘的版本表,此时数据库迁移成功


    返回以前的版本:
    可以根据history命令找到版本号,然后传给downgrade命令
      python database.py db history
    输出格式:<base> ->  版本号 (head), initial migration

    回滚到指定版本:
    python database.py db downgrade 版本号
     


     
  • 相关阅读:
    Django基础篇
    转 枚举设备栈
    转 Windows串口过滤驱动程序的开发
    VS2010 + WinDDK 搭建驱动开发环境(转)
    cef 下载地址
    electron入门教程
    转:PHP 生成复杂JSON格式 简单快速方法
    CEF General Usage(CEF3预览)
    转:关于使用ImageMagick和Tesseract进行简单数字图像识别
    转 Tesseract-OCR 字符识别---样本训练
  • 原文地址:https://www.cnblogs.com/lutt/p/10452629.html
Copyright © 2011-2022 走看看