如何在开发副本上对站点进行更新,然后又不覆盖实时站点的不断发展的数据库而将更新移回?


20

我试图在标题中尽可能地描述性,并且我知道这个问题以前曾以各种形式提出过,但是我找不到很好的答案,并且可以想象没有人解决这个问题。

很简单,一个WP网站一旦启用,如果它不是一个静态网站,则它将通过添加新帖子,新woocommerce订单,新用户帐户等来不断更新其数据库。

如果要对站点进行一些重大更改和更新,最简单易行的方法是将副本复制到本地安装或另一个开发域中,然后在其中进行所有更改。完成所有更改后,我想将它们复制回实时站点。

如果更改仅针对文件(例如主题和CSS),则有些简单。但是,如果更改涉及数据库的更改,例如添加新的插件以及添加连接/与这些插件相关的内容,那么我不再只能将站点复制回去,因为它将覆盖已添加到实时中的任何新更改。网站的数据库。所有新帖子,新订单,新图片上传都将被删除。

现在,我知道不同的案例场景有不同的解决方案,但是没有解决所有案例的方法吗?

例如,如果对实时站点所做的唯一更改是新帖子,那么我可以将这些帖子导出和导入到开发站点,然后将整个站点移到新站点。与其他一些项目相同,但不是每种项目。与此相关的另一个问题是,wordpress中的导出和导入功能非常糟糕。它太基本了,您几乎没有选择和仅导出特定项目的选项。我可能已经尝试了每个“高级导入/导出”插件,但还没有什么可以解决这个问题。

因此,在另一个主题中,有人指出此插件可以在现场站点上基本安装主题并在其中工作,而普通用户仍然可以看到现有主题,但是仍不能解决所有类型的更改。因为如果您要更改内容(例如,页脚或导航菜单),那么这些内容仍会反映在现有的可见主题/网站中,并且在新的测试主题上看起来可能不错,但在实时主题上却没问题。

没有办法在同一站点/数据库上开发站点的“分支”然后切换吗?还是没有办法在开发站点上进行开发,但实际上是以无损方式合并数据库?如果您知道受影响的组件和事物,是否没有办法做到这一点?否则您需要成为MySQL大师才能尝试这种事情。

我不是唯一一个有这个难题的人。我无法想象这个问题没有解决方案。如何才能做到这一点?

提前致谢。


3
每个人都有这个问题,没有简单的解决方案,将代码保留在版本控制中,经常将sql转储到登台服务器,在迁移过程中创建维护锁定(5-10分钟)。
Wyck

我不同意。CrowdFavorite的RAMP插件是一些需要暂存和部署内容的简单解决方案。称其为“简单解决方案”可能会很麻烦,但这很好,任何开发人员都应能够对其进行设置(需要SSH和远程MySQL访问等。)
jb510 2014年

有人尝试过sitepush吗?我不介意为Ramp支付250美元,如果它是一个更好的解决方案,但我想如果不进行全面的部署和测试,很难从外部看到这些系统的运行情况。
詹姆斯

尚未使用sitepush。听起来像它推动了完整的数据库(例如Migrate WP DB Pro)。这对于部署静态站点非常有用,但是在实时动态场景中会失败(例如,发生新的帖子/评论)。RAMP实际上管理数据库之间的差异并合并,而不是替换实时数据库。
2014年

您可能要使用DBV PHP(一个开放源代码项目),将您的数据库置于版本控制之下。它甚至具有使管理变得容易的UI。另一个选择是切换到例如Laravel,它的CLI应用程序内置了迁移工具。
kaiser

Answers:


2

确实没有容易的方法来完成您想要做的事情,但是我要做的是为您的站点创建快照,实施yoru更改,如果有任何刹车恢复,然后重试。可能要花一个小时,但是最近我刚好以某种方式砌了一个我正在处理的站点时才这样做。这可能不是解决问题的“正确”方法,但对我来说却可行。祝好运。


WP团队怎么可能没有考虑专业的方式呢?是2018年!!
asael2
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.