# 数据迁移 # 生成迁移文件 # 执行迁移,根据迁移文件生成数据表 # 集成脚本 from flask import Flask from flask_script import Manager from flask_migrate import Migrate, MigrateCommand from flask_sqlalchemy import SQLAlchemy class Config(object): DEBUG = True SQLALCHEMY_DATABASE_URI = "mysql://root@127.0.0.1:3306/demo" SQLALCHEMY_TRACK_MODIFICATIONS = False app = Flask(__name__) app.config.from_object(Config) manager = Manager(app) db = SQLAlchemy(app) Migrate(app, db) manager.add_command("mysql", MigrateCommand) class Book(db.Model): id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(64), nullable=False) price = db.Column(db.Integer) if __name__ == '__main__': manager.run()
from flask_script import Manager from flask_migrate import Migrate, MigrateCommand
这是两个主要的包
使用集成脚本之后需要在控制台中运行
python demo1.py mysql init
python demo1.py mysql migrate -m "init"
会生成迁移文件这里会自动生成模型修改的字段信息,并记录在migrations文件夹里
python demo1.py mysql upgrade(将会将执行 里面的upgrade函数,更新到数据库里,这里执行命令的时候建议先去检查下更新的字段是否无误后再执行操作)
python demo1.py mysql downgrade(执行downgrade命令,实现回滚操作downgrade执行的是migrations文件夹里downgrade函数)