Magento开发工作流程:如何从Test magento安装中“获取控制”数据库并更新实时Magento安装?


17

我发布这个问题是因为我想知道对于想要管理在线商店各个方面的人来说,最佳的开发工作流程是什么。

当然,与所有Web开发一样,拥有整个软件解决方案的实时副本和至少一个开发副本当然非常重要。但是,管理Magento东西并不像管理其他“基于文件”的软件那样,因为还有一个数据库组件在起作用,因此,除了我可以使用Git之类的工具作为VCS工具进行源代码控制之外,我要管理实时版本和开发版本之间的数据库差异?

我当然可以通过cron备份实时数据库,然后将备份中的SQL INSERT语句插入到源代码管理中,但是此后,两个数据库将分别发展,而客户一方面注册并下订单,然后再进入实时数据库,然后因为分别对开发数据库进行了更新。当要合并开发版本和实时版本时,可以通过git毫无问题地更新php文件(在托管数据库配置详细信息的单个文件上使用gitignore),但是数据库文件呢?如何合并两个备份中包含INSERT SQL语句的两个文件,而不会造成灾难和破坏系统?

这是我所面临的Magento开发生命周期的阴暗区域:管理数据库差异。

在我看来,就像同步Magento商店的开发/测试版本和实时版本之间不同的数据库内容的唯一解决方案一样,是在纸上写下通过Magento管理面板对开发版本所做的所有更改,并希望不要犯任何错误,然后在对所有内容进行测试并工作归档之后,转到在线版本,并在Magento脱机并进入维护模式时进行完全相同的更改。由于这是一个手动过程,因此容易出错。

那么,什么是处理测试magento服务器与实时magento服务器之间数据库同步的更好方法?

谢谢。


Answers:


3

我知道的选项

1.)手动-换句话说,在后端手动重复操作=如您提到的容易出错,缓慢

2.)在具有直接SQL查询的数据库级别=容易出错

3.)创建一个扩展,该扩展通过sql setup / upgrade脚本进行添加和更改。这些文件是您的存储库的一部分,可以进行部署。此方法主要绕过UI。

4)已经有一些工作在试图做一些这个工作流程中的项目一样,更加愉快的事情这个,但我认为这是不太黄金时间做好准备,只是还没有。

在所有这些选择中,我目前支持3.)


是的,我也赞成3。谁不会。但是,由于3是唯一的实际选项,并且到目前为止还不稳定,因此我将绕过所有建议,仅进行测试,以了解UI在本地服务器上的工作方式,并执行所有产品目录和产品和其他更新直接在实时服务器上运行,可能会使它脱机一段时间或更长时间,只是要在产品准备就绪时小心使产品处于活动状态,因为无论如何我都必须要小心,为什么不小心这样,无论如何,它可能造成的伤害最少,只有1和2。Thx
John Sonderson

3.)稳定,可重复且基于文件-缺点是设置需要更多工作。
克里斯托夫在Fooman,


1

有一些数据库工具,例如Quest Software(现为Dell)的MySQL Toad。此数据库管理工具具有数据和结构比较功能,可用于查看两个数据库之间的更改。只需保留要比较的数据库版本的备份(或git commit),瞧。甚至还有一个脚本生成器,用于使两者同步。


1

我们通过为本地创建一个临时数据库并分阶段进行读/写开发来解决了这个问题。真正帮助您节省时间和效率;不再需要克隆,而是将数据库上传到每个人的环境。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.