问题描述
广泛接受的是,开发人员应该通过分段站点测试更新,然后将其发布到实时服务器,但是一旦开发更新需要在 Wordpress DB 中进行修改,事情会变得复杂,因为实时站点中的用户也会更新数据库。
我可以想象的唯一 (混乱) 的流程如下:
-
在本地服务器上测试 (WAMP,XAMP 等)
-
准备部署后,将实时站点置于维护模式
-
备份现场 (Duplicator,sqldump 等)
-
创建一个锁定的实时站点克隆到分段站点
-
将修改从本地环境上传到分段站点
-
测试分期站点
-
推动分期站点生活。
-
删除维护模式
以上流程的缺点:
-
停机时间可能比用户预期的长,而开发人员正在认真测试分期站点中的更新;
-
可能需要手动管理修改:例如,siteorigin pagebuilder 布局存储在数据库中,因此一旦布局被修改,它必须在分段站点中手动导入; 在这种情况下,只要简单地放下& 将页面导入到分段站点,如果工作,则将其导入到现场站点
我想知道是否有更好的和更自动的方式来实现这一点。
你怎么看?
编辑根据要求,过去提出了一些解决方案,但没有提供一个明确的解决方案:
-
9/2010 – Database synchronization between dev/staging and production
-
12/2011 – Deploying Updated or New Plugins That Modify the wp_options Table
-
9/2014 – How to upload local changes to a live server without overriding new posts/pages?
-
1/2015 – How to maintain wordpress site blogs in production and staging?
最佳解决方案
专门针对 WordPress 的较新的托管服务提供商通常有工具来缓解这种痛苦。我把我的客户放在有这个 neat Git-enabled workflow 的万神殿中,代码只有从开始到升级到生产,而 DB 的东西只能向下移动 (反之亦然) 。将数据库从生产复制到分段是一个点击它们的界面。只要这个工作流程受到尊重,这几乎可以消除任何混乱生产数据库的问题,使我能够在开发过程中始终在生产数据库数据的新鲜克隆中测试我的更改。
人们不必使用万神殿 – 您可以使用自己的工具 (Git +一个 DB 克隆插件,如 WP Migrate DB) 在您的过程中采用类似的方法。我只是觉得这样对我很好。
问题:为什么要在测试阶段将你的生产现场置于维护模式?在大多数情况下,不应该有这种需求。我可以想到的唯一的情况是有一些非常脆弱的系统对其中添加的用户数据非常敏感,并引发灾难性的错误 – 但这可能表明一个不同的,更大的问题,需要重新思考他们的产品的整个架构。
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。