# 數(shù)據(jù)遷移 # 生成遷移文件 # 執(zhí)行遷移,根據(jù)遷移文件生成數(shù)據(jù)表 # 集成腳本 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
這是兩個(gè)主要的包
使用集成腳本之后需要在控制臺(tái)中運(yùn)行

python demo1.py mysql init
python demo1.py mysql migrate -m "init"

會(huì)生成遷移文件這里會(huì)自動(dòng)生成模型修改的字段信息,并記錄在migrations文件夾里
python demo1.py mysql upgrade(將會(huì)將執(zhí)行 里面的upgrade函數(shù),更新到數(shù)據(jù)庫(kù)里,這里執(zhí)行命令的時(shí)候建議先去檢查下更新的字段是否無(wú)誤后再執(zhí)行操作)
python demo1.py mysql downgrade(執(zhí)行downgrade命令,實(shí)現(xiàn)回滾操作downgrade執(zhí)行的是migrations文件夾里downgrade函數(shù))
浙公網(wǎng)安備 33010602011771號(hào)