临时站点,您如何管理数据库中的同步更新?

时间:2016-09-05 作者:Riccardo

人们普遍认为,开发人员应该在将更新发布到live server之前通过临时站点测试更新,但是一旦开发更新需要在Wordpress DB中进行修改,事情就会变得复杂,因为live站点中的用户也会更新DB。

我能想象的唯一(混乱的)流程是:

在本地服务器上测试(WAMP、XAMP等)

  • 一旦准备好部署,将live site置于维护模式下
  • 备份live site(Replicator、sqldump等)
  • 将锁定live site的克隆创建到临时站点
  • 将修改从本地环境上载到临时站点
  • 测试临时站点
  • 将临时站点推到活动状态

    开发者在临时站点仔细测试更新时,用户的停机时间可能比预期的要长

  • 可能需要手动管理修改:例如,siteorigin pagebuilder布局存储在db中,因此一旦修改布局,必须在临时站点中手动导入;在这种情况下,只需删除&;将页面导入临时站点,如果有效,则将其导入实时站点,我想知道是否有更好、更自动化的方法来实现这一点。

    你觉得怎么样?

    根据要求,过去曾提出过一些解决方案,但没有一个提供最终解决方案:

    2010年9月-Database synchronization between dev/staging and productionDeploying Updated or New Plugins That Modify the wp_options TableHow to upload local changes to a live server without overriding new posts/pages?How to maintain wordpress site blogs in production and staging?

    2 个回复
    最合适的回答,由SO网友:montrealist 整理而成

    专门为WordPress服务的较新主机提供商通常都有相应的工具来缓解这种痛苦。我把我的客户放在万神殿neat Git-enabled workflow, 其中,代码只向上移动(从开发到登台再到生产),而DB stuff只向下移动(反之亦然)。只需单击其界面,即可将数据库从生产复制到暂存。如果遵守了此工作流,这就基本上消除了不断弄乱生产数据库的问题,使我能够在开发阶段的任何一个阶段,始终在生产数据库数据的新克隆上测试我的更改。

    您不必使用万神殿——您可以使用自己的工具在流程中采用类似的方法(Git+一个DB克隆插件,如WP Migrate DB)。我只是觉得这种方法对我很有效。

    问题:为什么在测试转移时将生产站点置于维护模式?在大多数情况下,不需要这样做。我能想到的唯一一种情况是,有一种非常脆弱的系统,对输入到其中的其他用户数据高度敏感,需要启动一个灾难性的bug,但这可能表明存在一个不同的、更大的问题,需要重新思考其产品的整个架构。

    SO网友:marekeiba

    看看VersionPress 这将GIT版本控制带入了整个过程(文件和数据库)

    如其网站所述:

    VersionPress provides painless staging. 这意味着您可以轻松地为您的更改创建一个安全的测试环境,并且只有在更改准备就绪时才能将其合并回来。合并是这里的关键词–VersionPress可以无缝地处理您的live站点同时拥有新内容的情况。