Magento在登台和实时数据库上同步订单

时间:2015-11-14 20:44:30

标签: php mysql git magento staging

所以我有一个Staging and Live Magento网站。我想在登台网站上做主题,安装扩展,Magento升级等事情,然后将其推送到实时服务器。

问题是,当我正在进行更改时,会有实时订单进入实时网站。所以我不能简单地将文件和数据库复制到实时服务器。我将丢失订单和客户,我的所有订单号都将被搞砸。

那么保持两个数据库同步的正确方法是什么?像Magento升级或扩展安装之类的东西会对数据库进行更改,因此我不能只使用实时数据库。

我看到有人提到使用GIT / GitHub,不知道它是如何工作的,但是你是否只需将新的数据库更改推送到实时服务器以及更改的文件?

由于

1 个答案:

答案 0 :(得分:2)

当涉及客户,订单等可变数据时,您不需要保持暂存和生产数据库同步。

相反,您应该在生产中使用dev-stripped数据库(没有日志,客户,订单等),这些数据库用于分段。您可以放置​​要重新填充该数据的所有测试订单。这也意味着您不会有从登台数据库通过电子邮件发送实时客户的风险。

就更新数据库,设计等而言,您需要跟踪两个变化领域:

  1. 文件更改(模板,CSS,Javascript,模块,核心Magento更新代码......)
  2. 配置更改(数据库)
  3. 对于文件更改,您应该使用版本控制系统(Git,Subversion等)并在制作时跟踪您的更改。当他们经过测试并准备部署到生产环境时,您可以将它们合并到主服务器中。

    对于数据库更改,唯一可以确保在将代码部署到生产环境时切换所有内容的唯一方法是使用Magento安装/升级脚本将配置添加到数据库。如果您以前没有使用它们,它们基本上是一个PHP文件和config.xml中的版本号,用于升级的模块,添加新的安装脚本并告诉它您要更改的内容,无论是创建新表或数据,保存或更改配置值等。

    跟踪安装程序脚本中的所有配置更改(我的意思是所有,字面意思)的主要好处是:

    1. 当您部署源代码并重新索引时,Magento将使用所需的所有新配置更新您的生产数据库
    2. 您不必担心单独管理数据库更改
    3. 它已全部版本化 - 每个模块版本增量都可以有一个新的安装脚本,因此您可以看到模块中随时间发生的变化。
    4. 有关详细信息,请Alan Storm has a great article on them