Pla*_*lux 19 svn development-environment magento
我正在建立一个Magento网站,这是迄今为止我曾经使用过的最庞大的软件包.我决定建立一个合适的开发服务器并使用Subversion进行版本控制.我遇到了几个障碍,需要一些帮助.
到目前为止我做了什么:
这是我被困的地方:
所以我在我的开发空间中有一个功能齐全的Magento Install.我现在要做的是将我的实时站点部署到我的开发站点,作为起点.因为app/etc/local.xml文件中的配置不同; 加上Magento将{{base_url}}的值存储在数据库中,这并不像从我的开发站点更新我的svn trunk,然后导出/导入数据库那么容易.
随着我的进一步发展,我希望有一条直接的路径通过SVN和我的实时网站推送我的开发网站上的所有内容,同时保持数据库同步,除了{{base_url}}的值.我在其他地方读过一些使用svn引用的论坛帖子:忽略以避免某些特定于环境的文件和目录,但不知道如何在我的实时网站上设置并确保一切都正确同步.
我应该从我的repo到我的实时网站的空间查看trunk/magentoo的基本代码副本,然后运行安装,然后设置svn忽略local.xml,并假设除了本地区别之外它们是相同的吗?
在这一点上,我只是不知道如何继续,并且不愿意做出任何猜测,以防它不得不擦掉所有东西并在不久的将来重新开始.
作为旁注 - 我还需要为另一个子域创建代码的'Demo'分支; 向人们展示作为概念验证.当我来到它时,我可能只是越过那座桥.也许在我完成这项任务时,这一切都有意义.
tl; dr版本 - 如何使用SVN管理Magento开发和实时代码和Db?
感谢大家花时间阅读和回复!
Jos*_*tey 21
首先要检查已安装的程序版本.这样,repo中程序的副本就是一个可以实际使用的工作副本.然后,您将需要忽略一些文件和目录,以便您可以运行其他环境.local.xml是一个很好的例子,但也设置忽略以下内容:
/var/report/*
/var/log/exception.log
/var/log/system.log
/var/locks/*
/var/session/*
/var/cache/*
/var/tmp/*
/media/tmp/*
Run Code Online (Sandbox Code Playgroud)
可能有其他人,但这应该给你一个良好的开端.如果您认为可以对local.xml进行更改(并且可能),请将local.xml复制到local.xml.dist并将.dist版本检查到repo中.当您结帐到其他网站时,您仍然需要手动进行更改,但更容易跟踪.
对于数据库,通常的做法是在dev环境中执行mysqldump并将其保留在存储库中.
mysqldump -u user -p database > mysqldump.sql
您必须输入该密码.现在,repo中的副本是该站点的完整副本.要设置另一个环境,您将检查整个代码库,然后将MySQL文件导入数据库.
请记住,当您执行此操作时(以及任何时候在repo中更新数据库,然后想要更新其他环境中的更改),您将需要更改数据库中的{base_url}和{secure_url}.我见过一些开发人员创建脚本的环境,可以自动完成.
最后,尝试对您网站的开发副本进行所有更改,因为这有助于保持数据库同步.如果您对实时副本进行更改而至少也没有在dev中反映它们,您可能会在以后使用其中一个转储意外覆盖它们,然后想知道您的功能在哪里.
希望有所帮助.如果您有其他具体问题,请与我们联系.
谢谢,乔
我意识到这不是你要求的,但只是想告诉你我的设置,因为我认为一旦你上线就继续将dev数据库同步到生产是不切实际的.您可能希望对您的开发数据库进行更改以进行测试,这些更改并不总是很容易恢复.在实时环境中构建您的内容(产品等),偶尔将数据库复制回开发,我发现效果很好.
对于我的项目,我通过从头开始安装Magento来构建我的实时环境,并在这些点上检查了SVN中的目录:
/app/code/local/MyOrg
/app/design/frontend/default/myorg
/skin/frontend/default/myorg
Run Code Online (Sandbox Code Playgroud)
您进行的任何自定义都应位于其中一个目录中.
我在实时服务器上手动管理此目录:
/app/etc/modules
Run Code Online (Sandbox Code Playgroud)
如果您自己创建一个新模块,则只需要在那里创建一个文件.
| 归档时间: |
|
| 查看次数: |
10728 次 |
| 最近记录: |