【问题标题】:How can I deploy changes to my drupal gear when the mysql DB holds customer data?当 mysql 数据库保存客户数据时,如何将更改部署到我的 drupal 设备?
【发布时间】:2014-09-30 14:53:13
【问题描述】:

我的 openshift drupal 设备有实时客户数据,但我的测试站点只有测试数据。当我开发新功能、修复错误、添加视图或更改内容类型中的字段(在测试站点上)时,它将更改 mysql 数据库。如何在不清除保存客户数据的表格的情况下将这些更改上传到设备?到目前为止,我不必编写任何自定义代码,只需添加模块并配置它们。所以我宁愿避免使用 PHP 解决方案。谢谢。

【问题讨论】:

    标签: mysql drupal sync openshift


    【解决方案1】:

    您要么必须编写某种迁移脚本,要么必须手动对您在开发实例上所做的生产实例进行更改。执行“git push”不应该修改您的生产数据库,它应该只上传您的代码更改。

    【讨论】:

      【解决方案2】:

      developercorey 已经搞定了。

      不过,稍微扩展一下,这与 Openshift 几乎没有关系,而与 Drupal 的一切都有关(无论您在什么服务上运行 Drupal,您通常都会遇到这种情况)。例如,您也很难将实时数据带到您的测试站点。

      问题在于 Drupal 在分离数据库中的配置内容 方面做得很差。 Drupal 8's CMI 在大多数情况下应该可以解决这个问题,但是对于没有运行 Drupal 8 的站点,实际上只有两个选项:

      1. 在远程站点上手动跟踪和重新创建开发数据库更改,并使用 git 管理新模块、库、主题等的添加;这既乏味又容易出错。
      2. 使用Features module 将所有重要配置保存在代码中。这种方式相当可靠,但功能有时会很挑剔。

      功能工作流程

      注意事项

      • 您不必编写代码即可使用功能,但它确实有帮助
      • 功能只能帮助您处理可导出的 Drupal 部分——有些部分不能导出

      无论如何,要使用功能来管理更改,您需要遵循类似以下的过程。出于本文的目的,我将想象您的功能仅包含一个视图而没有其他任何内容。对于更复杂的特性,原则是相同的,但讨论一个非常复杂的特性会使这个时间过长。我也不会详细说明在 UI 中单击哪个链接和按下哪个按钮——在上面链接的“功能”项目页面上有这类事情的文档。我还将假设在初始创建功能后,您将在命令行上使用drushgit 进行管理。

      在开发网站上创建功能

      1. 备份您的数据库:)
      2. 在 Drupal 管理区域中,创建一个只包含一个视图的新功能
      3. 导出功能/将其写入文件系统
      4. 从视图 UI 中删除视图
      5. 使用drush en启用该功能
      6. 使用git添加、提交和推送新功能

      在生产环境中部署该功能

      1. 备份您的数据库:)
      2. 使用git pull获取新功能
      3. 从上面重复步骤 4-5

      在开发网站上修改功能

      假设您的视图现在需要更改。您可以按照以下步骤通过现有功能将这些更改转换为代码:

      1. 备份您的数据库:)
      2. 在视图 UI 中更改视图
      3. 在终端中,导航到您的功能目录
      4. 运行drush fu
      5. 运行git status(这应该会显示您的功能是否有任何变化)
      6. 使用git 提交并推送您的代码更改

      在开发站点上部署更改的功能

      1. 备份您的数据库:)
      2. 使用git pull 获取对功能的更改
      3. 在功能 UI 中导航到您的功能
      4. 还原功能(这将更改数据库中的功能设置以匹配代码中的内容)

      就是这样。

      【讨论】:

        【解决方案3】:

        因为你没有提到 Drupal 版本,但是 您可以使用 Drupal 8 中提供的精彩功能,即 Synchronize

        网址:管理员/配置/开发/配置

        使用此功能,您将能够导出视图、内容类型及其字段,并通过 GIT 或任何其他版本控制将其导入另一个服务器和代码。

        注意:确保两个实例的 uuid 相同(源和目标)

        【讨论】:

          猜你喜欢
          • 2017-02-12
          • 2018-03-08
          • 1970-01-01
          • 1970-01-01
          • 2012-05-19
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多