代码之家  ›  专栏  ›  技术社区  ›  nocksock

在活动Drupal站点上部署更改

  •  1
  • nocksock  · 技术社区  · 15 年前

    我真的很喜欢鼓手。但最令我不安的是,我找不到一个明确的部署方式。Drupal在数据库中存储了许多需要更新的东西(视图、CCK、工作流、触发器等)。

    我见过一些可以用于此任务的模块(如功能),我不确定它们是否足够。然而,它们只适用于Drupal6,我目前必须在Drupal5站点上工作,在那里更新还不是一个选项。

    有什么想法吗?

    1 回复  |  直到 15 年前
        1
  •  5
  •   Rimian    15 年前

    这是一个弱点。Drupal没有内置的开发工具,可以像Rails那样轻松地进行开发和部署(例如)。一个问题是Drupal不知道它的本地环境。其次,有太多不同的方法和模块需要特别注意。它会变得非常混乱。但德鲁什和德鲁什制造的情况正在好转。

    我假设您在本地计算机上有一个开发环境,以及一个您上传到的实时或临时服务器。

    您必须做的第一件事是非常快地解决如何将数据库设备和代码从服务器传输到开发环境的问题。你需要使这个过程尽可能的无痛,这样你就可以保持不同版本的网站同步,而不需要太多的努力。这意味着您将有望在每次部署时管理更少的变更。有希望地。。。

    移动数据库并不难。您可以使用phpmyadmin或mysqldump,但备份迁移模块是我最喜欢的工具。

    要从本地存储库或站点上载代码,可以通过几种方法完成。如果您使用像git这样的版本控制系统,那么您可以在本地计算机上提交,然后在临时服务器上再次签出。还有一些特殊的部署工具,比如Capistrano,您应该看看。(如果你已经知道这些东西,那么其他人读起来可能会有好处)。如果你使用的是ftp,你应该尝试一些不同的方法。

    如果您使用的是仍在生产中的站点,则可以对本地站点进行少量的增量更改,然后在活动站点上重复,并在更改就位时下载数据库的新版本。这确实意味着您要双重处理数据库,但这是一种安全的处理方法。它使您的数据库彼此更近,并将风险降至最低。

    您还可以用代码将视图备份导出到服务器,或者将其导入到活动站点。这里有一个关于部署CCK更改的方法: http://www.tinpixel.com/node/53 它工作正常,但不能真正管理像回滚这样的更改。(尊重写这封信的人)

    您还可以使用hook_updaten捕获更改,然后运行update.php应用这些更改。我和几十个开发人员一起在一个D5站点上工作,这是让事情向前发展的唯一方法。如果您的站点是活动的,或者您需要在版本控制系统中捕获所有数据库模式更改(这样您就可以回滚),这可能是一个不错的选择。

    另外:看看德鲁什和德鲁什的制作。这些工具可以带来很大的好处。我不记得有多少人支持d5。

    处理这一问题的最后一种方法是不要使用CCK或视图(并使用hook更新)。但这实际上只适用于拥有大量开发人员资源的企业站点。这似乎是一个奇怪的建议,但它可以完全否定整个问题。

    对不起,我不能给你一个明确的答案。这是因为一个还不存在。一旦进入,你就会找到自己的节奏。如果您可以轻松地回滚到数据库,那么只需保留数据库的备份。

    推荐文章