人们普遍认为,开发人员应该在将更新发布到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?
最合适的回答,由SO网友:montrealist 整理而成
专门为WordPress服务的较新主机提供商通常都有相应的工具来缓解这种痛苦。我把我的客户放在万神殿neat Git-enabled workflow, 其中,代码只向上移动(从开发到登台再到生产),而DB stuff只向下移动(反之亦然)。只需单击其界面,即可将数据库从生产复制到暂存。如果遵守了此工作流,这就基本上消除了不断弄乱生产数据库的问题,使我能够在开发阶段的任何一个阶段,始终在生产数据库数据的新克隆上测试我的更改。
您不必使用万神殿——您可以使用自己的工具在流程中采用类似的方法(Git+一个DB克隆插件,如WP Migrate DB)。我只是觉得这种方法对我很有效。
问题:为什么在测试转移时将生产站点置于维护模式?在大多数情况下,不需要这样做。我能想到的唯一一种情况是,有一种非常脆弱的系统,对输入到其中的其他用户数据高度敏感,需要启动一个灾难性的bug,但这可能表明存在一个不同的、更大的问题,需要重新思考其产品的整个架构。