使用MODX时什么是最好的部署实践?

当您的本地计算机上有开发版本的应用程序时,您可以将其部署到STAGE服务器上进行测试(可选),然后将其部署到PRODUCTION服务器上。 如果项目中存在代码和数据的精细判断(例如,如果我们将所有代码和设置存储在项目文件和数据库中),则可以相对容易地做到这一点。

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

看起来如果我们只是复制扩展文件而不是通过软件包管理器进行安装(因为扩展在DB中有自己的表),我们也可能会遇到一些麻烦。

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

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

  • 部署时应复制哪些文件和数据库表(或必须)?
  • 什么是模式(替换,忽略)我应该这样做?
  • 什么是最简单和最快的方式来做到这一点?
  • 我最担心的是不得不处理数据库。

    PS我正在谈论MODX的“革命”版本,如果它很重要。


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

    如果你担心URL更改[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文章]


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

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

    https://github.com/digitalbutter/FEM

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

    链接地址: http://www.djcxy.com/p/70877.html

    上一篇: What is the best deployment practice when using MODX?

    下一篇: Correct way to extract Translation from Essential Matrix through SVD