您的位置:首页 > 编程语言 > Python开发

python下的flask使用Flask-Migrate和Flask-Script对数据库迁移

2019-06-18 20:21 561 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/oLingTing/article/details/92799197

在开发过程中,需要修改数据库模型。最直接的方式就是删除旧表,但这样会丢失数据。
更好的解决办法是使用数据库迁移框架,它可以追踪数据库模式的变化,然后把变动应用到数据库中。
----------------------------------------------

#  安装迁移扩展
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 版本号
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: