使用MODX时最佳部署方法是什么?

时间:2013-04-10 20:28:51

标签: deployment workflow modx

在本地计算机上安装应用程序的开发版本时很方便,您可以将其部署在STAGE服务器上进行测试(可选),然后将其部署在PRODUCTION服务器上。当项目中的代码和数据存在很好的自由裁量权时(例如,如果我们将项目文件和数据中的所有代码和设置存储在数据库中),您可以相对容易地执行此操作。

MODX在数据库中存储模板,代码段等。是的,我们可以将此代码移动到静态文件,然后我们可以使用版本控制系统来跟踪这些项目的更改。但是这些也在数据库中有表示行。这意味着如果我们添加或删除了一些项目,我们必须像以前一样更新数据库。

如果我们只是复制扩展文件而不是通过包管理器进行安装,我们也会遇到麻烦(因为扩展通常在数据库中有自己的表)。

另一个问题是DEV和PROD上的应用程序具有存储在文件(配置)和数据库(用户帐户,例如)中的不同设置。

我仍然没有看到组织迭代DEV-STAGE-PROD开发周期的明确方法。所以,我的问题是:

  • 部署时应该(或必须)复制哪些文件和数据库表?
  • 我应该做什么模式(替换,忽略)?
  • 最简单快捷的方法是什么?

我最关心的是必须处理数据库。

P.S。我正在谈论MODX的“革命”版本。如果重要的话。

2 个答案:

答案 0 :(得分:3)

数据库根本不应该存储任何路径信息,以前的版本在modx_workspaces表中都有,但之后就消失了[从2.2.4开始我相信]。

如果您担心网址更改[dev.mysite.com / stage.mysite.com / production ...]不是 - 这都在.htaccess文件中[曾经是site_url系统设置,但它似乎也消失了。]

您需要担心的唯一文件是core / config / config.inc.php~使用不同的路径创建3个不同的文件,或者只是在迁移时替换它们。

移动/更新/迁移modx网站的过程是:

清除缓存! tar cvfz httpdocs.tar.gz httpdocs / mysqldump -u -p the_database> export.sql

移动文件,tar xvfz&导入数据库。 检查modx_workspaves表是一个好主意,如果你使用过旧版本的库,那么检查一下,但大多数插件和开发人员似乎习惯于不在路径信息中存储路径信息。数据库表。

当然,如果您已经加强了安装,还有一些步骤,但没有什么重要的。 [参见“强化rtfm.modx.com上的Modx文章”

答案 1 :(得分:1)

我认为你要找的是这个插件(取决于你的modx版本):

https://github.com/digitalbutter/MODX-Mirror

https://github.com/digitalbutter/FEM

所有Chunks,Snippets等都位于磁盘上。对文件所做的任何更改都将触发相应的数据库更改,而无需执行完整的SQL Import / Reimport。这将允许任何版本控制系统/分布式开发环境/自动部署。