0

我有通过 API 使用 sqlite3 db 的 C++ 应用程序(Linux)。目前 DB 与 RPM 中的二进制文件一起提供。该数据库已经具有所有必需的表。我的应用程序在运行时不会尝试更改任何架构。现在我必须支持下一个版本的数据库模式升级,因为模式可能会在未来发生变化。知道如何实现这一目标吗?

4

1 回答 1

0

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

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

PS:帮自己一个忙,也写降级脚本。如果您出于任何原因需要回滚,这些将很方便

于 2015-09-10T14:47:37.493 回答