7

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

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

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

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

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

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

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

PS如果重要的话,我说的是MODX的“革命”版本。

4

2 回答 2

3

数据库根本不应该存储任何路径信息,以前的版本在 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 文章]

于 2013-04-10T20:48:39.350 回答
1

我认为您正在寻找的是这个插件(取决于您的 modx 版本):

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

https://github.com/digitalbutter/FEM

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

于 2014-03-20T19:32:47.050 回答