メインコンテンツに移動

shirane lab

メインナビゲーション

  • ホーム
  • ブログ
  • Drush
  • 検索

パンくず

  • ホーム
  • ブログ
  • Migrate API の概要

Migrate API の概要

2020/09/28(月) - 20:24
shirane

Migrate は、外部ソースのデータを Drupal に取り込む仕組みと API を提供するモジュール。Drupal 8 からコアの一部となり、標準のデータ移行手段として広く使われている。

先日、Drupal 6 で構築したブログサイトの記事データを Drupal 9 に移行することがあり、ちょうど良い機会なので使ってみることにした。まずは、Migrate の概要を整理しておく。

Migrate は Drupal の ETL ツール

Migrate は Drupal の ETL ツールと見なすことができる。ETL とは、Extract(抽出) Transform(変換) Load(格納) の頭文字をとったもので、データ統合に必要な3つの処理を指す。

Migrate API の概要

Migrate では、この3つの処理をそれぞれ source、process、destination という用語で表し、それぞれの処理をプラグイン(共通の外部仕様に基づく差し替え可能なソフトウェア)として実装する構造になっている。

Migrate モジュールは、ETL を実行する全体の枠組みと、特定の目的に応じた機能を source、process、destination の各パートにプラグインとして組み込むための API を提供する。

ETL を実装するプラグイン

ETL を実装する各プラグインは、コアに含まれる Migrate モジュールのほか、追加の拡張(contributed)モジュールによって提供される。

source プラグイン

入力データの抽出機能を提供する。データを取得する対象に応じて固有のプラグインが実装される。旧バージョンの Drupal データベースからデータを抽出するものや、さまざまなデータソースに対応したものが存在する。

process プラグイン

process プラグインは、source プラグインが抽出したデータを変換する処理要素を提供する。単純な値の格納をはじめ、データの連結、配列の展開、反復処理など、コアだけでもさまざまなプラグインが提供されている。

destination プラグイン

destination プラグインは、process プラグインの変換結果を Drupal のエンティティとしてデータベースに格納する役割を果たす。ノード、ユーザー、タクソノミーターム、コメント、ファイルといったコンテンツのエンティティだけでなく、構成設定のエンティティとして格納するプラグインもある。

 

ETL の各パートそれぞれに対応するプラグインを組み合わせて全体の処理を組み立てる仕組みにより、多様なデータソースから抽出したデータを自在に変換し、その結果を Drupal システムのエンティティとして取り込むことができる。

参考資料:

  • Migrate API overview
  • Migrate source plugins
  • Migrate process plugins
  • List of core Migrate process plugins
  • Migrate destination plugins & examples
Drupal9
Migrate

Migrate API 関連記事

  • Migrate API の概要
  • Migrate API で画像ファイルを取り込むサンプル
  • Migrate API のパイプラインを利用してマルチフィールドに複数画像をマイグレーションする例
  • Migrate API で変換の前処理フックを利用して複数画像のサブフィールドを設定する例
‹ 前の記事次の記事 ›

書籍

『D9 おいしいレシピ集2』がパワーアップして商業誌に

『D9 おいしいレシピ集2』がパワーアップして商業誌に

 書籍の一覧はこちら

 

タグ一覧

DrushDrupal9Drupal6ffdsmVagrant開発環境VirtualBoxDrupal7ComposerコミュニティDrupal5Migrate勉強会モジュールDocker書籍ubercartWindowsCKEditorArtisteerDrupal ONSENDrupal4MariaDBTwigデバッグthemingTomeテーマH5PインストールAnalytics仮想マシンCentOSMacREPLpsyshDruxtJSデカップルドヘッドレスNuxtQuizVue

サイト運営

シナジークエスト

© shirane lab