Flask Web 的数据库迁移

Flask Web 的数据库迁移

,为什么要迁移?

在开发过程中,容易出现修改数据库模型的时候,修改之后还要跟新数据库。由于当数据库表不存在的时Flask-SQLAlchemy才会根据模型创建,这样就是前面说的粗暴更新法,先删除旧表在创建新表,不过数据会丢失,因此并不是好方法,所以,迁移技术就有大用途了。使用数据库迁移框架更新表,能跟踪数据库模式的变化,然后增量式的变化应用到数据库中。

Flask Web 的数据库迁移

二,使用框架迁移

Flask程序中可以使用Flask-Migrate扩展,这个扩展是对Alembic的轻量包装,集成到了Flask-Script中,所有的操作通过Flask-Script命令完成。使用pip 安装flask-migrate即可。

创建迁移数据库:使用init子命令创建,例,python hello.py db init,这会创建一个migrations文件夹,所有迁移脚本都放在其中。提醒:数据库迁移仓库中的文件要和程序的其他文件一起纳入版本控制。

创建迁移脚本:迁移脚本有两个函数,分别是upgrad()和downgrade()。upgrade()函数把迁移中的改动应用到数据库中,downgrade()函数则将改动删除。因为Alembic具有添加和删除改动的能力,因此数据库可以重设到修改历史的任意一点。对于创建迁移脚本,可以使用手动创建方式,也可以使用自动创建,不过注意的是,自动创建并不总是正确的,可能会漏掉一些细节,因此要自己检查。

更新数据库:创建好迁移脚本后,就可以使用命令db upgrade把迁移应用到数据库中。说明一下,第一次迁移,其作用和调用db,create_all()方法一样,但在后续的迁移中,upgrade命令能把改动应用到数据库中,且不影响其中保存的数据,好使。

Flask Web 的数据库迁移


分享到:


相關文章: