在多个生产环境中更新数据库模式的首选方法是什么

时间:2010-04-15 13:11:11

标签: database schema debian upgrade

我即将在连接到自己的本地数据库的多个位置安装大约20台具有相同Web应用程序的服务器。我将远程更新Web应用程序(可能使用debian的包管理器),我确信最终将需要更新数据库模式。由于每个服务器最终都可能使用不同版本的Web应用程序,因此我需要一种方法将增量更改应用于服务器。

我在想这样的事情。让我们从database.schema.1开始作为数据库的原始版本,并假设这个数字随着每个新版本的模式而增加。我最终可以以database.schema.17作为当前版本。对于新安装,这将是要安装的架构。在我看来,我需要连续翻译,如database.translation.1.2,将database.schema.1转换为database.schema.2database.translation.2.3转换为2到3,依此类推,直到17。每当我更改模式时,我需要alter数据库,但也许我需要运行一些脚本到update可能用SQL完成但可能需要外部非sql脚本的数据。

组织所有这些文件的适当方法是什么?将这些升级应用于架构的自动方式是什么?我在哪里存储架构的当前版本号?

2 个答案:

答案 0 :(得分:0)

取决于您正在使用的语言和环境。

Rails用migrations解决了这个问题。

答案 1 :(得分:0)

请参阅this question