Spo*_*boy 33 deployment magento
我正在寻找一个高度定制的Magento网站的部署过程,并想知道其他人如何做到这一点.
我将设置dev,UAT和prod环境.所有Magento文件都将在源代码管理(SVN)中.在这个阶段,我看不到更改数据库的任何要求,因此将手动维护3个数据库.
特别,
主题设计器文件/文件夹
设计师可以限制编辑以下文件夹 -
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/
Run Code Online (Sandbox Code Playgroud)
扩展开发者文件/文件夹
扩展开发人员可以编辑以下文件夹/文件 -
/app/code/local
/app/etc/modules/<Namespace>_<Module>.xml
Run Code Online (Sandbox Code Playgroud)
数据库环境管理
由于商店的基本URL存储在数据库中,因此您不能只在环境之间复制数据库.选项包括 -
Gre*_*ins 14
我建议在SVN上使用git.更容易的分支和合并意味着所有这些点将更顺畅地为您服务.
应用升级:在开发中执行此操作.创建一个分支(这是git真正闪耀的地方),应用补丁文件甚至更好,解压缩新的Magento版本并将其指向旧数据库.还没有扩展.在新的Magento安装中打开管理员,希望最好.次要版本之间的升级可能不会成为问题.安装完所有新东西后,你可能需要重新索引.一旦这是稳定的,就做一个提交,然后逐渐将分支和主题带入分支,进行任何代码调整,然后在每个步骤证明稳定后进行提交.
依赖于环境的文件: .htaccess和app/etc/local.xml.我为每个版本做了一个单独的版本:local.dev.xml,htaccess-dev local.staging.xml,htaccess-staging local.production.xml,htaccess-production
...然后为每个环境制作软链接:
ln -s htaccess-dev .htaccess
cd app/etc/
ln -s local.dev.xml local.xml
Run Code Online (Sandbox Code Playgroud)
等等.
限制对某些开发人员的访问:我不这样做.但是,您可以在git中开发一个部署策略,让发布经理决定输入内容和输入内容.
管理数据库更改:这是最棘手的部分.我们只是从生产中使用mysqldump,并为每个环境提供一些现成的"env-setup.sql"文件.这样的事情(你的ids可能会有所不同):
UPDATE core_config_data SET value='http://magento.dev/' WHERE config_id IN (3,4);
Run Code Online (Sandbox Code Playgroud)
我通常会添加更多指令,这些指令会将支付网关更改为测试环境,更改外发电子邮件等.其中大部分都可以在core_config_data中找到.
请记住,模块通常会对数据库进行自己的更改,因此应用精心设计的模块通常会自行处理.在任何情况下,永远不要对prod应用未经测试的更改,始终在本地和临时环境中进行"排练".
您可以通过从任何环境开发中转储和加载cms_*表来从数据库中获取CMS(页面和静态块)数据.
祝好运!
在开发magento时,我使用与任何Web应用程序相同的最佳实践.我还虔诚地避免对核心文件进行任何更改(magento wiki上的许多文档都要求您修改核心文件).
小智 7
我使用git来管理我的所有Magento项目和部署.合并新版本要容易得多,特别是如果你使用我在github上维护的Magento镜像.(GitHub Magento Mirror)
至于您关于基本URL存储在数据库中的具体问题,请尝试以下方法:
SELECT * FROM core_config_data WHERE path = "web/secure/base_url" OR path = "web/unsecure/base_url";
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19087 次 |
| 最近记录: |