flask_migrate进行数据库迁移

什么是数据库迁移?

所谓数据库迁移就是这个数据库到另一个数据库之间的任意形式的数据移动,说白了就是更新

什么时候用?

在开发过程中需要修改数据库模型 而且修改之后还要更新数据库。仅当数据库不存在时,flask_sqlalchemy才会根据模型创建,所以更新的唯一方式就是:

  1. 删除旧的数据库
  2. db.create_all()

旧数据库的数据自然而然丢失了,所以说更新表更好的办法就是数据库迁移

flask_migrate

pip install flask_migrate

from flask_migrate import Migrate
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
migrate = Migrate()


def create_app(config_name):
	db.init_app(app)
    migrate.init_app(app,db)
    ……

主程序:

from flask_script import Manager
from flask_migrate import MigrateCommand
app = create_app('default')
manager = Manager(app)
manager.add_command('db', MigrateCommand)

……

if __name__ == "__main__":
    manager.run()

假设以上脚本存储在名为的文件中manage.py,则可以通过运行脚本来访问所有数据库迁移命令,当然如果没有数据库,那么它会首先生成根据model生成:

# 初始化迁移脚本文件夹
python manage.py db init
# 创建迁移脚本 在此你可以在迁移文件夹versions中检查脚本代码 自动迁移不一定总是正确的
python manage.py db migrate
# 确认无误 更新数据库
python manage.py db upgrade

在这里插入图片描述
如果使用迁移框架管理数据库,必须在迁移脚本中定义所有改动,否则改动将不可复现。

  1. 对数据库模型必要修改
  2. 执行python xxx.py migrate 生成脚本
  3. 检查脚本正确性
  4. upgrade
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值