我使用git进行版本控制。我有开发、暂存和生产环境。在开发中完成后,我会将更改推送到暂存环境供客户审核。审核通过后,我会将更改从暂存环境推送到生产环境。只要没有数据库更改就可以正常工作。但是,如果我通过Magento Connect在本地开发中安装模块并对数据库进行修改,那么会发生什么?
由于生产服务器始终在变化,所以该如何将这些更改推送到生产服务器?
编辑:
我编写了两个shell脚本。一个将生产数据库拉到我的开发服务器上,将基本网址替换为开发网址,并相应地更新我的开发数据库。它还保留了生产SQL转储,以添加到我的git存储库中。我不确定在源代码控制中保留原始转储是否有益,但我会尝试一下。第二个脚本将开发数据库移到暂存环境,并执行与第一个脚本相同的操作。
现在,当需要切换到生产环境时,我将更新的生产repo拉入生产服务器,并允许Magento做它的事情。我最近也开始使用SQLYog,它有一个数据库比较向导,可以给出我开发和生产数据库之间的差异,并允许我进行选择性合并更改。它总是创建一个迁移脚本,我也将其添加到源代码控制中。如果出现任何问题,我可以运行比较来查看是否遗漏了什么。
你们觉得这个工作流程不错吗?
由于生产服务器始终在变化,所以该如何将这些更改推送到生产服务器?
编辑:
我编写了两个shell脚本。一个将生产数据库拉到我的开发服务器上,将基本网址替换为开发网址,并相应地更新我的开发数据库。它还保留了生产SQL转储,以添加到我的git存储库中。我不确定在源代码控制中保留原始转储是否有益,但我会尝试一下。第二个脚本将开发数据库移到暂存环境,并执行与第一个脚本相同的操作。
现在,当需要切换到生产环境时,我将更新的生产repo拉入生产服务器,并允许Magento做它的事情。我最近也开始使用SQLYog,它有一个数据库比较向导,可以给出我开发和生产数据库之间的差异,并允许我进行选择性合并更改。它总是创建一个迁移脚本,我也将其添加到源代码控制中。如果出现任何问题,我可以运行比较来查看是否遗漏了什么。
你们觉得这个工作流程不错吗?