如何解决在 Drupal 9 中的实例之间迁移结构和内容
我对 Drupal 很陌生,所以请不要太生气,以防我有任何重大误解:) 我已经尝试寻找类似的问题,但只是找不到适合我的解决方案案例。
我们目前正在建立一个 Drupal 9 项目,该项目将有一个共享的开发环境和一个生产环境以及一个用于开发的本地实例。我希望有一种方法来同步这些实例,使其具有相同的配置、内容类型和可选的内容。
目前,我正在本地开发一个主题,这意味着我已经在 XAMPP 服务器中安装了一个 Drupal 实例。该主题由 git 进行版本控制,因此可以毫无问题地迁移到其他开发人员。
为了迁移结构和内容(显然保存在数据库中),我尝试使用Backup & Migrate,但我面临两个问题:D9 版本尚不完全支持,因此安装通过composer 在默认安全设置下失败,并且在尝试备份整个站点时似乎有 an already multiple times reported bug。您可以通过分别备份数据库和文件来解决此问题,但由于其他问题,这非常不方便(但让我们保持简短...)。
我也尝试导出整个数据库,这实际上是有效的(在 this little fix 之后),但对我来说开销似乎有点高。尤其是当我只想将新的内容类型从开发环境复制到生产环境时,例如,没有用户、内容等。
那么,总算告一段落了,有没有针对这种情况的最佳实践?或者我应该考虑走完全不同的路吗?
提前致谢!
解决方法
我绝对不建议为此使用备份和迁移 - 这就是 Drupal 7! Drupal 9 具有更好的工具,这些工具已融入核心!
有多种可能的方法可以跨环境导入/导出配置和内容实体,但我将分享我认为当前的最佳做法。
对于配置,Drupal 9 有一个内置的配置管理系统,可以很容易地跨环境迁移配置。它可以在 Drupal UI 中使用,也可以与 Drush(Drupal 的命令行工具)集成。
本质上,Config 系统将所有 Config 设置导出为标准化的 YAML 文件,这些文件可以轻松包含在您的 Git 存储库中。这将使设置另一个在其配置设置中相同的 Drupal 环境变得非常容易。
可以在 here 中找到有关配置管理的更多信息。
对于内容,Drupal 9 有一个内置的 Migrate API,它有助于从任何数据源迁移到 Drupal 9 环境。这意味着您可以设置迁移,以允许您跨环境迁移内容实体。
我只用它来迁移内容(从 Drupal 7 迁移而来),但我相信也可以用它来迁移配置。
如果您决定使用 Migrate API,您可能(取决于您的内容设置)需要安装 Migrate Tools 和 Migrate Plus。
可以在 here 中找到有关 Migrate API 的更多信息。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。