-
作用:
在保留原数据的前提下, 更新表结构
-
环境:
需要安装flask组件 flask-migrate
-
数据迁移需要依赖脚本启动组件
flask-script
-
迁移命令
-
初始化迁移文件夹
python main.py mc init
-
生成版本(会自动根据现有代码的数据库结构, 生成升级代码)
python main.py mc migrate -m "构建表结构"
-
升级版本
python main.py mc upgrade
-
查看当前版本
python main.py mc current
-
查看历史版本
python main.py mc history
-
切换到指定的版本(版本号前6位)
python main.py mc upgrade 956979
-
app = Flask(__name__)
# 设置数据库的连接地址
app.config["SQLALCHEMY_DATABASE_URI"] = "mysql://root:mysql@127.0.0.1:3306/migrate20"
# 是否监听数据库变化 一般不打开, 比较消耗性能
app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False
# 创建数据库操作对象(建立了数据库连接)
db = SQLAlchemy(app)
# 创建管理器
mgr = Manager(app)
# 初始化迁移器
Migrate(app, db)
# 添加迁移命令
mgr.add_command("mc", MigrateCommand)
class User(db.Model):
__tablename__ = "users" # 设置表名 默认为类名小写
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(48), unique=True)
age = db.Column(db.Integer, unique=True)