我在prestashop 1.6网站上进行了大量修改。
我已经创建了一个本地副本,并且正在跟踪git中的文件系统更改。
然而,prestashop中的很多更改都存储在数据库中,特别是在我的情况下:
在开发过程中,实时网站收到了大量新订单,客户,订阅者等,因此数据库不同步。
我通过转储和导入数据库中的特定表,或使用迁移功能中内置的框架解决了其他框架中的类似问题,但我找不到专门针对prestashop的建议。
这是如何处理的?
考虑到开发站点可能经历了比实时站点更多样化的更改,我想知道将新订单等复制到开发站点然后覆盖整个站点会更容易吗?
答案 0 :(得分:3)
我不认为可以在PrestaShop中实现这一目标。您必须具备PrestaShop DB的丰富知识(即了解其中的每个表和列)才能合并数据库。
永远不建议这样做。
我建议您手动执行同步,因为这是一项非常危险的任务,您可能会丢失实体商店中的所有数据,这将更加痛苦。
答案 1 :(得分:2)
对于模块,信息存储在以modules
开头的所有表中。
模块配置值存储在configuration
和configuration_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"中的东西"。