我即将在连接到自己的本地数据库的多个位置安装大约20台具有相同Web应用程序的服务器。我将远程更新Web应用程序(可能使用debian的包管理器),我确信最终将需要更新数据库模式。由于每个服务器最终都可能使用不同版本的Web应用程序,因此我需要一种方法将增量更改应用于服务器。
我在想这样的事情。让我们从database.schema.1
开始作为数据库的原始版本,并假设这个数字随着每个新版本的模式而增加。我最终可以以database.schema.17
作为当前版本。对于新安装,这将是要安装的架构。在我看来,我需要连续翻译,如database.translation.1.2
,将database.schema.1
转换为database.schema.2
,database.translation.2.3
转换为2到3,依此类推,直到17。每当我更改模式时,我需要alter
数据库,但也许我需要运行一些脚本到update
可能用SQL完成但可能需要外部非sql脚本的数据。
组织所有这些文件的适当方法是什么?将这些升级应用于架构的自动方式是什么?我在哪里存储架构的当前版本号?