flask-migrate 一个用来做数据迁移的 falsk 扩展,一般都是结合 flask-sqlalchemy 使用,在上一篇文章中我也介绍了这个扩展,需要的小伙伴可以看一下,后续我会将 flask-sqlalchemy 更深层的写出来。【config.py】
SQLALCHEMY_DATABASE_URI=’mysql://root:mysql@127.0.0.1:3306/test’ // 数据库连接
SQLALCHEMY_TRACK_MODIFICATIONS=False
【data_migrate.py】
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_script import Manager #这是一个做脚本调式的库,有时间我也会总结
from flask_migrate import Migrate,MigrateCommand
app = Flask(__name__)
app.config.from_envvar(‘config.py’)
db = SQLAlchemy(app)
migrate = Migrate(app, db)
manager = Manager(app)
manager.add_command(‘db’, MigrateCommand)
class User(db.Model): #创建一个模型类,用于做数据迁移
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(32))
if __name__ == ‘__main__’:
manager.run()
【控制台测试】
>>>python data_migrate.py db init // 创建迁移存储库
>>>python data_migrate.py db migrate -m ‘ 版本名后缀 ’ // 生成初始迁移
>>>python data_migrate.py db upgrade // 将迁移应用于数据库
// 若有修改,可重复执行 2 / 3 这两条命令
>>>python 文件 db history // 显示整个历史版本记录
【其他命令】
python data_migrate.py db –help // 帮助,查找所有命令
python data_migrate.py db current // 显示当前版本
python data_migrate.py db upgrade 版本号 // 升级版本, 不指定版本为最新版本
python data_migrate.py db downgrade 版本号 // 降级数据库, 不指定版本则是最老版本