我的开发环境如下所示。
带有tomcat7的开发服务器,mysql安装。我们的应用程序使用mysql数据库运行。我们还有一个名为“生产服务器”的服务器,它还承载了tomcat7和mysql。我们的应用程序也在那里运行。我们正在使用像ec2实例这样的amazon服务。问题是,每当我们在开发服务器中集成某些数据库更改时,我们都需要在生产服务器中复制相同的过程。谁能建议我的理想基础设施,在那里我们可以使用完全克隆或任何简单的过程。任何良好的架构在实践中都是受欢迎的。
发布于 2013-07-30 17:56:24
数据库的每一项更改都必须像应用程序的任何其他部分一样被跟踪(当然,最明显的“其他部分”是您的代码库)。
在SQL脚本中记录对数据库所做的每一项更改。该脚本将作为标准升级过程的一部分应用于目标环境-应用修补程序就意味着“安装新代码和应用数据库升级脚本,并且可以轻松地编写脚本。
如果您预见到将来必须安装应用程序的新实例的可能性,则需要能够创建新的空数据库。为此,您还需要维护一个创建应用程序默认结构的“初始化脚本”。这包括表、触发器、存储例程创建脚本,可能还包括表中的一些默认行。必须以与升级脚本相同的方式维护此脚本。您可能希望在某些集成服务器上保留一个空数据库,以便使用标准升级脚本进行升级。然后在每个版本中转储此数据库;此转储将成为您的参考数据库创建脚本。
这篇博文发表在“编码恐怖”指出了关于这个主题的几篇高质量的文章。
https://stackoverflow.com/questions/17953560
复制相似问题