合并dev和live prestashop数据库

时间:2017-03-29 10:16:43

标签: php mysql prestashop prestashop-1.6

我在prestashop 1.6网站上进行了大量修改。

我已经创建了一个本地副本,并且正在跟踪git中的文件系统更改。

然而,prestashop中的很多更改都存储在数据库中,特别是在我的情况下:

  • 安装和配置新模块
  • 卸载模块
  • 添加商店类别和更改层次结构
  • 更改模块位置
  • 并且通常修改哪些模块出现在什么钩子中。

在开发过程中,实时网站收到了大量新订单,客户,订阅者等,因此数据库不同步。

我通过转储和导入数据库中的特定表,或使用迁移功能中内置的框架解决了其他框架中的类似问题,但我找不到专门针对prestashop的建议。

这是如何处理的?

考虑到开发站点可能经历了比实时站点更多样化的更改,我想知道将新订单等复制到开发站点然后覆盖整个站点会更容易吗?

3 个答案:

答案 0 :(得分:3)

我不认为可以在PrestaShop中实现这一目标。您必须具备PrestaShop DB的丰富知识(即了解其中的每个表和列)才能合并数据库。

永远不建议这样做。

我建议您手动执行同步,因为这是一项非常危险的任务,您可能会丢失实体商店中的所有数据,这将更加痛苦。

答案 1 :(得分:2)

对于模块,信息存储在以modules开头的所有表中。 模块配置值存储在configurationconfiguration_lang中。确保您也复制自定义模块表。

商店类别信息位于以category开头的所有表格中。

模块挂钩信息位于以hook开头的所有表中。

然而,正如Raghubendra Singh在他的回答中所说,这是一项非常冒险的任务,如果你真的想要这样做,我建议你创建另一个当地实时网站的本地副本,并首先尝试两个本地副本之间的过程,并确保一切工作正常。

答案 2 :(得分:0)

我可以告诉你我更新Prestashop并每天使用它的经验。

对于日常工作(修复bug或添加功能),我直接在phpmyadmin中对DB进行更改。我在镜像isntallation中测试所有内容,将更改复制到prod站点并应用mysql更改。

我们只推出了2-3个新主要版本的网站(每两年一次,或多或少)并等待稳定版本的Prestashop,即使1.7现在也有一些主要错误(翻译是其中之一,不是确定它在1.7.1中100%固定。 最后一个,非常好,我们根据我们的需要改变了主题,为我们的客户应用了一系列新功能等等...当时间推出时我刚刚分析了相关表格中的差异,并复制了数据从旧数据库到新数据库,添加了字段和更改的默认值等...使用ssh访问,因为它们都在同一台服务器上。

顺便说一句,我们需要的旧表与地址,运营商,购物车,类别,客户,交付,功能,组,图像(但不是image_type),制造商,订单,产品,范围,specific_price,stock_available,供应商,税,tax_rule,心愿单,区域,国家,州,员工,个人资料以及我们的模块使用的其他人。模块,配置,挂钩等其他功能并不重要,因为它是一个全新的主题。

我一直在考虑做一些可以同步dev版本的db和live版本的东西。但由于我们没有做过那么多重大改变,而且次要的改变,我们仍然没有完成,我们会尝试将更改保存在文件中,直到我们应用它(不是最专业的,我知道)。有时,在这些主要的版本更改中,Prestashop可能有新的方法。最后我记得是1.6.something中的访问slug,这不是在1.5中,在完成所有操作之后,我可以登录到后台办公室,但是其他工作人员不能,因为它改变了访问控制的方式,因为我是超级拉丁,我没有受到它的影响。现在还没有做到的另一件事是Prestashop开始使用Symfony,我认为将来会尝试更多地使用它,影响未来的工作方式。因此,解决方案现在无法在将来发挥作用。

我们还可以使用模块中的升级功能。从未尝试过,但它可以用于自动将升级应用于数据库和其他人。看起来很有希望,但不知道它是否适用于推送或仅仅是模块升级。有一天我会去测试这个。

这不是对解决方案的回应,但我对一个解决方案感兴趣,如果没有解决方案,则会对其进行处理。做推动会很有趣,而不必手动改变db"中的东西"。