2

我目前正在开展一个项目,我们当前版本的产品部署在多个客户站点。更多时候,我们不是在我们的开发/测试环境中测试和废弃(又名重构:)数据库设计。不可能跟踪数据库的每个增量更改以创建相应的“迁移文件”。现在,当我们对数据库设计(相对稳定)感到满意时,我们需要将生产数据库更新到当前状态。

我们在生产中的系统不能只发出一个DROP/CREATE SCHEMA命令来更新模式(想想会丢失的工作,包括我的:)所以我们要么编写 MySQL 转储,要么应用程序包装器来备份数据并重新输入它进入数据库。相当麻烦,尤其是当多个“客户端”不在同一个数据库版本时。为客户拥有的每个版本编写一个非常麻烦。

那么,您在生产环境中重构数据库时采用了哪些最佳实践,尤其是当您不能只删除该数据但需要重新输入数据并让系统在“停机”后无缝继续运行时?

如果有任何用途,后端是 Java/Restlet 和 MySQL

4

1 回答 1

2

您可以使用Refactoring Databases一书中描述的数据库重构模式,并查看数据库重构网站http://databaserefactoring.com/。使用迁移方法,您无需删除和创建数据库。[dbdeploy]、[dbmaintain]、[ibatis migrator]、[liquibase] 等工具可以在这里为您提供帮助。

于 2012-06-26T13:42:22.377 回答