我有两个网站使用WooCommerce的Wordpress,一个是LIVE(接受订单),另一个是正在开发中。
“开发一号”已更新内容,已删除并重新读取现有产品以及其他内容。
有人要求我将开发数据合并到live上,但不要丢失事务数据或用户。
通常我会做以下工作:
将live site置于维护模式获取live和development site的mysqldump备份,使用DEV site上的导出工具导出除用户之外的所有wp数据将数据导入live
将媒体目录从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
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工作。