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

Database 在多个生产环境中更新数据库架构的首选方法是什么,database,schema,debian,upgrade,Database,Schema,Debian,Upgrade,我将在多个位置安装大约20台服务器,这些服务器使用相同的web应用程序连接到它们自己的本地数据库。我将远程更新web应用程序(可能使用debian的包管理器),我确信最终需要更新数据库模式。由于每个服务器最终可能使用不同版本的web应用程序,因此我需要一种方法将增量更改应用于服务器 我是这样想的。让我们从数据库的原始版本database.schema.1开始,假设这个数字随着模式的每个新版本而增加。我最终可能会将database.schema.17作为当前版本。对于新安装,这将是要安装的架构。在

我将在多个位置安装大约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岁。似乎每当我更改模式时,我都需要
更改
数据库,但也许我需要运行一些脚本来
更新
数据,这些数据可能是用SQL完成的,但可能需要一个外部非SQL脚本


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

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


Rails解决了这个问题。

我在一个带有MySQL数据库的tomcat容器中使用java servlet。