在开发过程中,需要修改数据库模型。最直接的方式就是删除旧表,但这样会丢失数据。
更好的解决办法是使用数据库迁移框架,它可以追踪数据库模式的变化,然后把变动应用到数据库中。
----------------------------------------------
# 安装迁移扩展
pip install flask-migrate
pip install flask-script
flask-migrate 依赖 flask-script
----------------------------------------------
在Flask中可以使用Flask-Migrate扩展,来实现数据迁移。并且集成到Flask-Script中,所有操作通过命令就能完成。
为了使用数据库迁移命令,Flask-Migrate提供了一个MigrateCommand类,可以附加到flask-script的manager对象上。
----------------------------------------------
from flask import Flask
# 导入迁移扩展
from flask_migrate import Migrate,MigrateCommand
# 导入script扩展
from flask_script import Manager
app=Flask(__name__)
# 1. 实例化Migrate ------- 把app中的模型迁移到db数据库中
migrate = Migrate(app, db)
# 2. 创建Manager管理实例:
manager = Manager(app)
# 3. 给管理实例添加迁移命令
manager.add_command('db', MigrateCommand)
if __name__ == '__main__':
# 4. 管理实例运行项目
manager.run() # 允许项目:代替 app.run(debug=True)
# 1.这个命令会创建migrations文件夹,所有迁移文件都放在里面。
# 只需要第一次同步时运行
python use_db.py db init
# 2.创建自动迁移脚本
# -----相当于django中的makemigrations-------
# ----- -m 'initial migration' ------指定版本名称
python use_db.py db migrate -m 'first-time'
# 3.更新数据库
python use_db.py db upgrade
# 4.版本回退
python use_db.py db history
python use_db.py db downgrade 版本号