1、安装
$pipenv install flask-migrate
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate
app = Flask(__name__)
...
db = SQLAlhemy(app)
migrate = Migrate(app.db) #在db对象创建后调用
2、创建迁移环境
$ flask db init
迁移环境只需要创建一次。这会在你的项目根目录下创建一个migrations文件夹,其中包含了自动生成的配置文件和迁移版本文件夹
3、生成迁移脚本
$ flask db migrate -m "add note timestamp"
-m选项用来添加迁移备注信息,此命令会在migrations/versions/下创建一个迁移.py文件,包含两个函数:upgrade()用来将改动应用到数据库,downgrade()用来撤销改动。
因为每一次迁移都会生成新的迁移脚本,同时生成修订版本(revision)ID,所以数据库可以恢复到历史中的任一点
4、更新数据库
生成迁移脚本后,使用upgrade子命令即可更新数据库
$ flask db upgrade
如果没有数据库和表,则会自动创建;如果已经创建,则会在不损坏数据的前提下执行更新。
提示:如果 想回滚迁移,可以使用 downgrade命令(隆级),它会撤销最后一次迁移在数据库中的改动,这在开发时非常有用。