在 Drupal 9 中的实例之间迁移结构和内容

Posted

技术标签:

【中文标题】在 Drupal 9 中的实例之间迁移结构和内容【英文标题】:Migrating structure and content between instances in Drupal 9 【发布时间】:2021-05-21 07:41:20 【问题描述】:

我是 Drupal 的新手,所以请不要太生气,以防我有任何重大误解 :) 我尝试搜索类似的问题,但找不到适合我的解决方案案例。

我们目前正在建立一个 Drupal 9 项目,该项目将有一个共享的开发环境和一个生产环境以及一个用于开发的本地实例。我希望有一种方法可以同步这些实例,使其具有相同的配置、内容类型,甚至可以选择内容。

目前,我正在本地开发一个主题,这意味着我已经在 XAMPP 服务器中安装了一个 Drupal 实例。该主题由 git 版本控制,因此可以毫无问题地迁移到其他开发人员。

为了迁移结构和内容(显然是保存在数据库中的),我尝试使用Backup & Migrate,但是我遇到了两个问题:D9版本还没有完全支持,所以通过composer安装失败使用默认安全设置,在尝试备份整个站点时似乎有an already multiple times reported bug。您可以通过分别备份数据库和文件来解决此问题,但由于其他问题,这非常不方便(但让我们保持简短...)。

我还尝试导出整个数据库,它实际上正在工作(在this little fix 之后),但开销对我来说似乎有点高。尤其是当我只想将新的内容类型从 dev 复制到 prod 环境而没有用户、内容等时。

那么,为了最终结束,这个案例有什么最佳实践吗?或者我什至应该考虑另辟蹊径?

提前致谢!

【问题讨论】:

【参考方案1】:

我绝对不建议为此使用 Backup & Migrate - 那是所以 Drupal 7! Drupal 9 有更好的工具被嵌入核心!

有很多方法可以跨环境导入/导出配置和内容实体,但我将分享我认为是当前最佳实践的方法。

对于配置,Drupal 9 有一个内置的配置管理系统,可以很容易地跨环境迁移配置。它可以在 Drupal UI 中使用,也可以与 Drush(Drupal 的命令行工具)集成。

本质上,Config 系统将所有 Config 设置导出为标准化的 YAML 文件,这些文件可以轻松地包含在您的 Git 存储库中。这将使设置另一个配置设置相同的 Drupal 环境变得异常容易。

有关配置管理的更多信息可以找到here。

对于内容,Drupal 9 有一个内置的 Migrate API,它有助于从任何数据源迁移到 Drupal 9 环境。这意味着您可以设置允许跨环境迁移内容实体的迁移。

我只使用它来迁移内容(从 Drupal 7 迁移),但我相信也可以使用它来迁移 Config。

如果您决定使用 Migrate API,您可能(取决于您的内容设置)需要安装 Migrate Tools 和 Migrate Plus。

有关 Migrate API 的更多信息,请访问here。

【讨论】:

谢谢,这显然是要走的路。尽管我花了一些时间来处理一些问题和错误,但这可能取决于我的设置和技能,所以我会尝试。 @MzudemD 很高兴我能对你有所帮助!祝你好运!

以上是关于在 Drupal 9 中的实例之间迁移结构和内容的主要内容,如果未能解决你的问题,请参考以下文章

在Drupal 7中的页面之间传递变量

在 CPU 和 GPU 之间同步静态分配的结构实例

在模块内以编程方式在 Drupal 9 上创建示例内容的最佳技术

drupal 8 views日期范围过滤器 - '在'运算符之间'不包括结束日期

如何让 Drupal 使用 Wordpress 形式的编辑代码?

如何让 Drupal 使用 Wordpress 形式的编辑代码?