将更新的开发站点与实时站点合并,同时保持订单正确

时间:2017-06-29 作者:John Cogan

我有两个网站使用WooCommerce的Wordpress,一个是LIVE(接受订单),另一个是正在开发中。

“开发一号”已更新内容,已删除并重新读取现有产品以及其他内容。

有人要求我将开发数据合并到live上,但不要丢失事务数据或用户。

通常我会做以下工作:

将live site置于维护模式获取live和development site的mysqldump备份,使用DEV site上的导出工具导出除用户之外的所有wp数据

  • 将媒体目录从dev上传到live(dev站点上有新图像)
  • 检查live,如果一切正常,则重新投入生产

    我没有用于自定义SQL相关工作的phpmyadmin

  • 客户删除了链接到事务数据的现有产品,然后重新添加了这些产品(我不知道这样做的原因,我从一开始就没有参与过这项任务)
  • 由于第2点,我想我最终会在live上看到指向不存在的产品的交易/订单
  • 在不丢失用户或订单相关数据的情况下,将dev上的更改合并到live中,然后协调任何孤立事务的最简单方法是什么。

    下面是我的目标示例:

    Site A1 (Current site)      Site A2 (Staging)      Site A2 After Merging
    =================================================================
    ID Name                    ID Name                 ID Name
    =================================================================
    1  Product A            |  1  Product A         |  1  Product A
    2  Product B            |                       |  2  Product B
    3  Product C            |  3  Product C         |  3  Product C
                            |  4  Product D         |  4  Product D
    

    1 个回复
    SO网友:ianmjones

    根据开发数据库的当前状态,您必须手动将更改重新应用到live,或者最好是已设置为使用Mergebot之类的工具的登台环境,否则我看不到任何自动部署的干净方法。

    Why Mergebot can\'t help given the current state of the database:

    Mergebot是一个很好的解决方案,可以解决开发人员站点的问题,该站点是一个实时站点的副本,其中包含在开发人员上创建的交易数据,如WooCommerce订单。这是创建该站点的主要原因之一。

    但是,Mergebot通过记录对开发站点的更改来工作,并且需要开发站点在记录开始时是实时站点的干净副本。通常,您会使用类似于WP Migrate DB Pro(与Mergebot订阅捆绑在一起)的内容创建一个live站点副本,然后开始录制,完成后,您会通过Mergebot部署到live,Mergebot负责合并,并在需要时引导您解决冲突。

    在上面的场景中,在开始录制之前,开发数据库已经与live有了很大的不同,因此我认为Mergebot不是一个解决方案,除非开发工作可以重新应用到live的新副本。移除产品也是一个严重的问题,应该将其从销售中移除,但如果客户已经购买,则应保持原样。

    这里对Mergebot有更好的描述:-https://deliciousbrains.com/database-merging-made-easy/

    如果您喜欢屏幕广播,请查看以下帖子:-https://deliciousbrains.com/mergebot-in-beta/

    全面披露:虽然我没有直接参与Mergebot,但我为Mergebot的开发者Delicious Brains工作。

    结束

    相关推荐

    Migration Question

    我正在试图弄清楚,对于我计划的一个非常重要的迁移,我是否正确地理解了迁移过程。我目前以Add On 我个人帐户上的域。www.example.com</我已经在我的经销商WHM系统上使用相同的域名为他们创建了一个帐户。www.example.com</我已经将他们的所有文件从我的个人托管帐户复制到我的HD</我会留下他们的MySQL DB和MySQL DB用户帐户,以防出现任何问题</我已经为他们的数据库创建了一个备份</现在据我所知,我所要做的就是:移除Add On 我个人