最近,我的服务器团队更换了我的数据库,他们将我们以前的数据库放入其中。因此,我们丢失了某一天[特定日期]的订单详细信息。现在,服务器团队提供包含丢失当天订单详细信息的备份。
现在请告诉我如何恢复这些订单?
我无法用给定的备份替换我们的数据库,因为今天我们也有订单。
谁能告诉一步一步的说明吗?
我创建了一个新数据库并上传了备份。我知道订单保存在 wp_posts 和 post meta 中。
那么我需要做什么? ,我从 wp_posts 导出该日期的所有订单,并将元发布为 sql 文件。然后只需将其导入到当前数据库?这有什么问题吗?
这种情况相当复杂,因为正如您可以猜测的那样,您在两个数据库(在备份数据库和实际数据库中)中肯定有不同订单的相同订单 ID。
当下订单时,它会填充数据库表“post”、“postmeta”(可能还有一些 wooCommerce 插件创建的与 woocommerce 相关的额外表)。
检索丢失的数据:
首先在“帖子”中backup表你必须找到所有带有 a 的“post_id”商店订单“post_type”,从特定日期开始:
SELECT * FROM 'posts' WHERE 'post_date' > '2016-03-15 00:00:00' AND 'post_type' LIKE 'shop_order' ORDER BY 'post_id' ASC
(您必须在此处设置正确的开始日期和时间)
与所有这些post_id您将检索“postmeta”表中的所有相关数据:
SELECT * FROM 'postmeta' WHERE 'post_id' > 2059 ORDER BY 'meta_id' ASC
(你必须更换post_id“2059”是你对应的真人……)
准备要插入的新数据:
对于“posts”表,在将“post_id”插入到实际数据库之前,您必须先移动“post_id”的所有不同 ID 号,并使用新的不存在的值,具体取决于实际数据库已使用的 ID。
对于“postmeta”表,您必须将所有旧的“post_id”替换为刚刚在“posts”表中生成的新值。
您必须将您的商店置于维护模式以避免新订单(例如,使用此免费维护模式 https://fr.wordpress.org/plugins/lj-maintenance-mode/ plugin)
你必须习惯 MySQL,我认为最好在你的网上商店的复制版本中测试所有内容。之前做好备份...
EDIT
正如您在本文中所说,您的网站和数据库非常繁重wordpress.stackexchange 帖子 https://wordpress.stackexchange.com/questions/221781/restore-woocommerce-orders10 GB 用于您的网站,2 GB 用于数据库。
最快捷、最简单的方法:
所以最好的选择可能是创建一个新数据库在同一台服务器上导入包含错过的订单的备份。完成后,您可以执行以下步骤
1) 将您的网上商店置于维护模式(例如,使用这个免费的维护模式 https://fr.wordpress.org/plugins/lj-maintenance-mode/ plugin).
2) 备份数据库(以防万一)。
3) 在您的 wp-config.php 文件中更改数据库(更改为未接订单的旧数据库)。
4) 立即激活并启用维护模式插入。
5)安装WooCommerce 只需订购导出 https://wordpress.org/plugins/woocommerce-simply-order-export/插件并启用它。
6) 将一日缺失订单数据导出为 CSV 或 XML 文件。
7) 在您的 wp-config.php 文件中更改数据库(更改为包含所有新订单的实际数据库)。
8) 启用WooCommerce 只需订购导出并导入 CSV(或 XML)文件。
8) 禁用WooCommerce 只需订购导出 and 维护模式插件(如果需要的话可以删除它们)。
你完成了!
谢谢梅胡尔·戈希尔 在那篇文章中 https://wordpress.stackexchange.com/questions/221781/restore-woocommerce-orders
Regards
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)