使用alembic升级Sqlite3模式

Sqlite3 schema upgrade using alembic

本文关键字:模式 Sqlite3 升级 alembic 使用      更新时间:2023-10-16

我有一个c++应用程序(Linux),通过api使用sqlite3 db。目前,DB是随二进制文件一起在RPM中发布的。这个DB已经包含了所有需要的表。我的应用程序在运行时不会尝试更改任何模式。现在我必须支持下一个版本的数据库模式升级,因为模式可能会发生变化。知道我该怎么做吗?

Alembic绝对可以做你想做的事情,但考虑到你的应用程序是用c++而不是python编写的,用python维护所有表的声明性模型可能不值得付出努力。鉴于您只使用sqlite,我建议您手工编写SQL更新语句,然后从alembics书中取出一页,创建一个包含一个条目的版本表-当前数据库版本。

当你的应用程序启动时,检查当前的数据库版本,并按顺序运行迁移脚本,直到数据库迁移到最新版本。

PS:帮你自己一个忙,也写降级脚本。如果出于某种原因需要回滚

,这些将非常方便。