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 版本号
     


     
  • 相关阅读:
    poi 导出Excel
    数据库连接太慢问题(3层for)
    mybatis 结果 返回的类中有集合的字段List<String>
    tomcat8 插件
    tomcat 7 到tomcat8 乱码问题
    简易代码生成器
    shiro权限控制用户登录的用法介绍
    导入maven工程并配置maven环境
    angularjs工程流程走不通的原因以及使用angularjs流程注意点
    访问路径:https://i.cnblogs.com/posts?categoryid=925678
  • 原文地址:https://www.cnblogs.com/lutt/p/10452629.html
Copyright © 2011-2022 走看看