Jef*_*eff 6 database deployment wordpress continuous-integration content-management-system
在过去的几年里,我的团队越来越多地进入CMSes.我们也越来越多地进行持续集成.事实证明,调和这两者很困难.更糟糕的是,我们使用LAMP和.NET站点,因此我们的脚本理想地适用于两者.
我们为每个站点本地,集成,登台和生产提供四种环境.内容输入和文件上载定期发生在生产站点上.发展显然是从本地开始并逐步发展起来的.
我可以在构建服务器上实现哪些方法或技术,以便在不覆盖用户生成的内容的情况下自动将数据和架构更新从开发环境推送到生产环境中?相反,我如何(以及何时)自动将用户生成的数据绘制到开发环境中?
您的数据库中将有 3 种需要担心的事情。
1)模式,可以在DDL中定义。2)静态或查找数据,可以在DML中定义。3) 动态(或用户)数据也可以在 DML 中定义。
通常,对 (1) 和 (2) 的更改应该使用它们相互依赖的代码投入生产。(3)永远不应该上去,但如果当时与生产环境同步,则可以复制到开发环境。
当然,事情比这复杂得多。要实现 (1) 可能需要将现有架构/DDL 转换为特定的更改语句,并且如果数据类型或位置发生变化,还可能需要数据操作。要实现 (2) 需要与代码构建同步,这在复杂的环境中可能会变得很困难。
有很多工具,如果您需要自动化,那么您可能需要熟悉它们的人的建议。
我使用一个非常简单的方案,其中所有架构更改都反映在 SQL 构建脚本中,并且还添加到更改 SQL 脚本中,其中包括执行任何所需转换所需的所有 SQL。这对我来说效果很好,但我的场景非常简单(1 个人,1 个服务器),因此不典型。
然而,任何成功的关键是在进行变更时定义变更所需的工作。仅更改开发数据库然后在部署时执行修复的简单方法是一场灾难。
归档时间: |
|
查看次数: |
389 次 |
最近记录: |