我找了一个高度定制的Magento网站建立部署过程,并想知道其他人是如何做到这一点。
我将建立开发,UAT和PROD环境。 所有Magento的文件将在源代码控制(SVN)。 在这个阶段,我不能看到改变DB,所以3个数据库将手动维护的任何要求。
特别,
- 如何申请Magento的升级? (单独在每个ENV,或开发,然后铺开,或者干脆放弃上升级?)
- 哪些文件/文件夹将在每个环境中独自离开(如Magento的/应用程序的/ etc / local.xml中)
- 你限制开发商编辑特定的文件/文件夹?
- 你限制主题设计者编辑特定的文件/文件夹?
- 您是如何管理数据库的变化?
主题设计文件/文件夹
设计人员可以限制为编辑以下文件夹 -
app/design/frontend/your_interface/your_theme/layout/
app/design/frontend/your_interface/your_theme/template/
app/design/frontend/your_interface/your_theme/locale/
skin/frontend/your_interface/your_theme/
扩展开发者文件/文件夹
扩展开发人员可以编辑下列文件夹/文件 -
/app/code/local
/app/etc/modules/<Namespace>_<Module>.xml
数据库环境管理
作为商店的基础URL存储在数据库中,你不能只是复制环境之间的数据库。 选项包括 -
- 重写PHP中的基本URL。 上设置开发和分期数据库博客文章
- 复制后更改数据库的基本URL。 ( 这哪里是存储?)
- 做一个mysqldump要么备份,然后做一个替换的SQL文件的URL。
我建议使用Git了SVN。 更简单的分支与合并意味着所有这些问题都将更加顺利为您服务。
应用升级:在开发中做到这一点。 做一个分支(这是git的真正的亮点),应用补丁文件,甚至更好,解开一个新的Magento版本,并将其指向旧数据库。 没有扩展呢。 打开管理在新的Magento安装最好的希望。 次版本升级之间可能不会是一个问题。 你可能将不得不重新索引所有的新东西安装后。 不要提交一次,这是稳定的,然后逐步将进入分支的扩展和主题,进行任何代码的调整,然后做每一步证明稳定后提交。
与环境有关的文件目录下:.htaccess和应用程序的/ etc / local.xml中。 我做的每一个单独的版本:local.dev.xml,htaccess的-dev的local.staging.xml,htaccess的-分期local.production.xml,htaccess的生产
...然后让软链接到他们的每个环境:
ln -s htaccess-dev .htaccess
cd app/etc/
ln -s local.dev.xml local.xml
等等。
限制访问某些开发商:我不这样做。 但是,你可以开发一个git的部署策略,让一个发布经理决定在发生什么,什么不。
管理数据库的变化:这是最棘手的部分。 我们只是使用mysqldump从生产,并为每个环境的一些现成的“ENV-setup.sql”文件。 像这样的东西(你的IDS可能会有所不同):
UPDATE core_config_data SET value='http://magento.dev/' WHERE config_id IN (3,4);
我通常会添加一些更多的指令,这种情况会改变的支付网关测试环境,改变外发电子邮件等大多数的这些,你会发现在core_config_data。
请记住,模块通常会做出自己的分贝的变化,因此应用一个制作精良的模块通常需要自己照顾自己。 在任何情况下,绝不未经测试的更改应用到PROD,始终做到“彩排”在本地和临时环境。
您可以从任何环境的发展是上进行转储和装载只是cms_ *表获得CMS(网页和静态块)从数据库中的数据。
祝好运!
我用同样的最佳做法的任何Web应用程序的同时开发Magento的。 我也虔诚地避免对核心文件进行任何更改(在Magento的维基许多文件要求你修改的核心文件)。
我使用git来管理我所有的Magento的项目和部署。 这是很容易合并的新版本,特别是如果你使用Magento的镜子我保持在GitHub上。 ( GitHub的Magento的镜像 )
至于你在哪里的基本网址为存储在数据库中的具体问题,试试这个:
SELECT * FROM core_config_data WHERE path = "web/secure/base_url" OR path = "web/unsecure/base_url";
您可避免DB-操作(德国): http://blog.tudock.de/startseite/beitrag/2010/09/17/deployment-prozess-eines-magento-shops.html
大量的试验和错误后,我们拿出的是适合我们的工作流:
http://www.dhmedia.com.au/blog/perfect-magento-workflow-using-git
包括数据库管理,源代码控制下的所有代码(使用Git),部署,升级和发展用地,多个开发者,多个环境,等等。
希望这可以帮助别人!