• [python]Flask-migrate简单入门


    Flask-Migrate是用于处理SQLAlchemy 数据库迁移的扩展工具。当Model出现变更的时候,通过migrate去管理数据库变更。

    Migrate主要有3个动作,init、migrate 和upgrade。

    以下面的应用为例:

     1 from flask import Flask
     2 from flask_sqlalchemy import SQLAlchemy
     3 from flask_migrate import Migrate
     4 
     5 app = Flask(__name__)
     6 app.config['SQLALCHEMY_DATABASE_URI'] = "sqlite:///app.db"
     7 
     8 db = SQLAlchemy(app)
     9 migrate = Migrate(app, db)
    10 
    11 # Model
    12 class User(db.Model):
    13     id = db.Column(db.Integer, primary_key=True)
    14     name = db.Column(db.String(128))

    1.  初始化

    flask db init

    这个命令会在当前目录下生成一个migrations文件夹。这个文件夹也需要和其他源文件一起,添加到版本控制。

    2. 生成最初的迁移

    flask db migrate

    此命令会在migrations下生成一个version文件夹,下面包含了对应版本的数据库操作py脚本。

    由于migrate并不一定全部发现你对model的所有改动,因此生成的py脚本需要review, 有错的话则需要edit。

    例如目前知道的,表名称表更,列名称变更,或给constraints命名等,migreate都不能发现的。更多限制细节见此:Alembic autogenerate documentation

    3. 数据库升级

    flask db upgrade

    最后一步。此命令相当于执行了version文件夹下的相应py版本,对数据库进行变更操作。

    此后,对model有变更,只要重复migrate和upgrade操作即可。

    查看帮助文档:

    flask db --help

    使用Flask-Script的命令调用,自行参考官方文档: Flask-Migrate Documentation

  • 相关阅读:
    记录MySQL中优化sql语句查询常用的30种方法
    记录分布式和集群的区别
    TCP的三次握手与四次挥手理解及面试题(很全面)
    记录Linux常用命令大全
    DNS解析流程
    dup和dup2用法小结
    c++多态的实现
    linux下常见的字符串处理
    ncurses库的一些函数
    用两个栈实现一个队列
  • 原文地址:https://www.cnblogs.com/oDoraemon/p/9206921.html
Copyright © 2020-2023  润新知