如何安全地将阶段数据库部署到magento中的实时生产数据库

时间:2012-01-25 15:36:51

标签: database magento deployment

对版本控制和源代码控制非常陌生我想知道你们中的一些人是如何使用Magento安全地更新你的开发人员数据库更改为生产的,以及哪些工具可以帮助你做到这一点。

我已经为我的开发更改设置了存储库设置,并且运行了dev版本的magento的本地计算机,但我不知道合并数据库更改的安全(和正确)方法。如果我添加一些产品,添加扩展程序,在我的开发环境中更改一些管理员设置但想要将我的更改与正在接受订单,添加客户等的实时商店合并,该怎么办?我认为某种类型的合并是合适的,几乎就像数据库的源代码控制一样,但这是否可能?

我不确定它是否有帮助或重要但我使用的是NetBeans,而且我经常使用Navicat来浏览数据库表等。

2 个答案:

答案 0 :(得分:4)

版本控制数据库架构
不太相关 - 因为Magento中的每个模块都有自己的setup/upgrade scripts集。如果感兴趣,可以使用工具来管理数据库的架构,例如dbDeploy

版本控制数据库内容
将环境想象成一组层,顶部是登台环境,而在它下面(在同一层面上)是开发环境。所有代码更改都可以在任何环境中完成,因为所有环境都只是相同版本化源代码的工作副本。每个数据库都从下一个“层级”环境中获取。因此,例如,开发环境会将数据库从登台环境中拉出来,并且当生产环境存在时,登台环境将从那里拉出来。因此,对数据库的任何更改(即更新产品,更改配置窗格中的设置等)都必须在最上层完成,然后它下面的所有层将在下次更新数据库时收到更改。 现在很明显,在开发时,您可以根据需要更改任意数量的内容,以确保它在开发环境中运行良好,然后再将这些更改提升。

拉动业务如何运作
拉动(并推送)数据库非常简单,对数据库执行mysqldump,然后使用url更改进行搜索/替换(使用sed或类似的东西),然后导入新数据库。

说完了......
感谢您对源代码进行版本控制,这至少意味着如果您必须遵循我的场景,那么您可以在对生产进行更改之前在开发环境中完全测试模块。我希望我能提供更多具体的“解决方案” - 因为必须在多种环境中进行更改当然不是理想的 - 尽管我会对其他人提出的建议感兴趣。

答案 1 :(得分:0)

扩展程序有安装/升级脚本,因此更新生产应该不是问题。

但是,如果要将产品/属性更改从暂存转移到生产,则需要使用导出/导入工具。例如,它可以是本地magento导出到csv。

或者我可以建议使用自动迁移工具,它将比较登台和生产数据库,并转移服务器上遗漏的所有产品或属性 http://xpscommerce.com/blog/quick-push-magento-database-to-production/

产品转移也包括图像转移。

要运行迁移工具,需要设置XMLRPC帐户才能访问服务器数据。