[python]Flask-migrate简单入门

Posted oDoraemon

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[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命名等,都是不能发现的。更多限制细节见此:Alembic autogenerate documentation

3. 数据库升级

flask db upgrade

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

 

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

查看帮助文档:

flask db --help

 

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

 

以上是关于[python]Flask-migrate简单入门的主要内容,如果未能解决你的问题,请参考以下文章

python 9:注册Flask-Migrate

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

flask-migrate数据库迁移

flask扩展Flask-Migrate的使用

Flask中使用Flask-Migrate扩展迁移数据库

SQLAlchemy(包含有Flask-Migrate知识点)