在数据库本身中存储数据库版本

Storing database version in the database itself

我正在编写一个使用 h2 数据库存储数据的程序。 随着我们向软件中添加功能,数据库将不断发展,但我们仍然希望用户能够将旧版本的数据库与新版本的程序一起使用。这样程序可以自动将数据库升级到更新的版本(可能首先要求用户确认)。 要写这个 "database upgrader" 我们需要将数据库版本存储在数据库本身中,这样就可以只移动数据库文件(我们正在使用 h2 数据库引擎的文件模式)。 我们试过这样做:

TABLE configuration (databaseVersion INT NOT NULL);

但这意味着 table 只使用一行而不显式检查行数。

有更好的方法吗? 在此先感谢您的帮助。

我认为这是一个很好的解决方案,如果您只是需要保留数据库版本。

有时您需要保留多个这样的 'global' 设置,例如,如果您的应用程序包含多个模块,并且每个模块都有自己的版本。或者其他东西,比如上次备份的位置。我通常使用的是 settings table 和 key/value 对,其中 key (table 的主键)和 value 属于 varchar.

类型