【问题标题】:Database deployment with MySQL and Capistrano使用 MySQL 和 Capistrano 进行数据库部署
【发布时间】:2012-11-10 16:26:26
【问题描述】:
我已经设置了 Capistrano,现在将其用于部署到登台和实时服务器,这对我的开发工作流程来说是一个很大的改进。我现在想知道的是如何最好地处理数据库部署。我有一个看起来不错的 Liquibase,但我不完全确定最好的方法是什么。我是否应该将数据从实时同步到登台和开发服务器,以便它们是实时站点的正确克隆?此外,架构更改通常会是版本化并部署到登台/实时的事物类型吗?任何关于最佳实践和你们所做的事情的指示将不胜感激。我应该补充一点,我主要使用 MySQL 数据库。
【问题讨论】:
标签:
mysql
deployment
version-control
capistrano
liquibase
【解决方案1】:
Liquibase 并非真正旨在将生产数据库与开发数据库“同步”
环境。相反,它旨在跟踪对开发环境的所有更改,以便可以在生产环境中忠实地复制它们。
话虽如此,liquibase 确实包含一些强大的工具,用于提取和比较数据库。但是,此功能旨在支持初始化新项目或发现可添加到现有项目中的缺失“变更集”,以“同步”两个数据库。
发现 liquibase 的最佳方法是尝试一下。出于您的目的,您将查看命令行实现。 (如果您想在 Capistrano 中嵌入 liquibase,那么您只需要 liquibase jar 和与您的数据库关联的 JDBC jar。)
PS
以下是在 liquibase 中比较两个数据库的示例: