首頁 > 後端開發 > php教程 > 您的第一個Drupal 8遷移

您的第一個Drupal 8遷移

Lisa Kudrow
發布: 2025-02-15 10:45:12
原創
946 人瀏覽過

> drupal 8遷移:深入研究內容傳輸

遷移模塊是Drupal生態系統的基石,以至於Core Drupal 8集成了其一些功能。 這對於用內容和配置遷移從Drupal 6和7到Drupal 8替換傳統升級至關重要。雖然Core現在包括基本框架(在migrate>模塊中)和Drupal 6/7升級工具(IN migrate_drupal),IN Migrate Tools),貢獻模塊中仍然存在許多基本特徵。 Migrate Source CSV尤其重要,提供用於管理遷移的drush命令和用戶界面。 此外,Migrate Source XMLMigrate Source JSON

的模塊為通用數據源提供插件。 >

Your First Drupal 8 Migration

>本文通過將內容導入節點實體來演示Drupal 8遷移。為簡單起見,我們將在Drupal安裝中使用數據庫表。 完整的代碼可在[此存儲庫](link_to_to_repository_here-替換為實際鏈接)中可用

密鑰概念:

    drupal 8遷移由三個部分組成: source
  • process destination 。 源插件獲取原始數據,處理插件對其進行操作,並且目標插件將其保存為Drupal實體。 對於通過drush(推薦方法)運行遷移至關重要。 命令之類的命令和
  • 控製過程。
  • > Migrate Tools drush migrate-import --alldrush migrate-rollback --all遷移體系結構:
> Drupal 8遷移使用插件系統。 源插件提供了原始數據,過程插件將其轉換為IT,並且目標插件將其保存到Drupal實體中。 該管道是在遷移配置實體中定義的(通常在模塊啟用上導入的模塊配置)。

>>示例:電影遷移

我們的示例涉及兩個數據庫表:

(id,name,Description)和

(id,Movie_id,name)。 以下MySQL腳本創建了這些表,並使用示例數據填充它們:> 的目標是將電影和流派遷移到分類學術語(詞彙)中,維持電影類型的協會。

流派遷移(movies):movies_genres

CREATE TABLE `movies` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
  `description` text,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

CREATE TABLE `movies_genres` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `movie_id` int(11) DEFAULT NULL,
  `name` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;

INSERT INTO `movies` (`id`, `name`, `description`) VALUES
(1, 'Big Lebowsky', 'My favorite movie, hands down.'),
(2, 'Pulp fiction', 'Or this is my favorite movie?');

INSERT INTO `movies_genres` (`id`, `movie_id`, `name`) VALUES
(1, 1, 'Comedy'),
(2, 1, 'Noir'),
(3, 2, 'Crime');
登入後複製
登入後複製

源插件(位於

中)定義了SQL查詢,字段和IDS。 migrate.migration.genres.yml電影遷移():

id: genres
label: Genres
migration_group: demo
source:
  plugin: genres
  key: default
destination:
  plugin: entity:taxonomy_term
process:
  vid:
    plugin: default_value
    default_value: tags
  name: name
登入後複製
CREATE TABLE `movies` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
  `description` text,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

CREATE TABLE `movies_genres` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `movie_id` int(11) DEFAULT NULL,
  `name` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;

INSERT INTO `movies` (`id`, `name`, `description`) VALUES
(1, 'Big Lebowsky', 'My favorite movie, hands down.'),
(2, 'Pulp fiction', 'Or this is my favorite movie?');

INSERT INTO `movies_genres` (`id`, `movie_id`, `name`) VALUES
(1, 1, 'Comedy'),
(2, 1, 'Noir'),
(3, 2, 'Crime');
登入後複製
登入後複製

Movies.php源插件使用prepareRow()添加包含流派ID的'流派'字段。

激活和執行:

    啟用自定義模塊。
  1. > install
  2. Migrate Tools
  3. 使用drush命令(
  4. migrate-statusmigrate-import --all)。 migrate-rollback --all>

結論: >此示例說明了Drupal 8的遷移功能。 探索不同的源插件,過程插件以及自定義解決方案來滿足各種遷移需求的潛力。

>

>

常見問題(常見問題解答):

(它們在很大程度上是從輸入中不變的,因為它們是事實和相關的。 >

>遷移到drupal 8?
    (答案保持不變)
  • 的先決條件是什麼 >我如何準備我的drupal 8網站遷移?
  • (答案保持不變)
  • >我如何執行遷移過程? (答案保持不變)
  • 在遷移過程中我的內容會發生什麼?
  • >如果遷移過程失敗,該怎麼辦? (答案保持不變)
  • >>我可以將網站的配置遷移到drupal 8? (答案保持不變)
  • >
  • 我如何將網站的主題遷移到Drupal 8? (答案保持不變)
  • 我可以回滾遷移嗎?
  • (答案保持不變) >我如何更新drupal 8?
  • 中的遷移內容(答案保持不變)
  • > 我可以執行部分​​遷移嗎? 請記住,如果您有一個>,請替換為實際鏈接。

以上是您的第一個Drupal 8遷移的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板