# 数据迁移
    # 生成迁移文件
    # 执行迁移,根据迁移文件生成数据表
# 集成脚本
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函数)

 

posted on 2022-05-12 11:42  今晚不吃饭  阅读(58)  评论(0编辑  收藏  举报