ホームページ > バックエンド開発 > PHPチュートリアル > あなたの最初のDrupal 8移行

あなたの最初のDrupal 8移行

Lisa Kudrow
リリース: 2025-02-15 10:45:12
オリジナル
952 人が閲覧しました

Drupal 8移行:コンテンツ転送への深い潜水

移行モジュールは、Drupalエコシステムの基礎であるため、Core Drupal 8はその機能の一部を統合しました。 これは、従来のアップグレードをDrupal 6および7からDrupal 8へのコンテンツと構成の移行に置き換えるために重要でした。一方、Coreには基本的なフレームワーク(migrateモジュール)とDrupal 6/7アップグレードツール(migrate_drupal)が含まれています。多くの重要な機能は、寄与したモジュールに残っています。 Migrate Toolsは特に重要であり、移行を管理するためのDrushコマンドとユーザーインターフェイスを提供します。 さらに、Migrate Source CSVMigrate Source XMLMigrate Source JSONなどのモジュールは、一般的なデータソース用のプラグインを提供します。

Your First Drupal 8 Migration この記事では、コンテンツをノードエンティティにインポートすることにより、Drupal 8の移行を示しています。簡単にするために、Drupalインストール内のデータベーステーブルを使用します。 完全なコードは[このリポジトリ](link_to_repository_here-利用可能な場合は実際のリンクに置き換えます)で利用できます。

重要な概念:

DRUPAL 8移動は、

ソース
  • プロセス、および宛先の3つの部分で構成されています。 ソースプラグインは、生データを取得し、プロセスプラグインを操作し、宛先プラグインをDrupalエンティティとして保存します。 は、Drush(推奨方法)を介した移行を実行するために不可欠です。 プロセスを制御するようなコマンド。
  • Migrate Tools移行アーキテクチャ:drush migrate-import --alldrush migrate-rollback --all
  • drupal 8移行はプラグインシステムを使用します。 ソースプラグインは、生データを提供し、プロセスプラグインが変換され、宛先プラグインがDrupalエンティティに保存されます。 このパイプラインは、移行構成エンティティ内で定義されます(通常、モジュール構成、モジュールイネーブルメントにインポートされます)。

例:ムービーの移行

私たちの例には、2つのデータベーステーブルが含まれます。 次の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クエリ、フィールド、およびIDを定義します。

ムービーの移行(

):migrate.migration.genres.yml

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を使用して、ジャンルIDを含む「ジャンル」フィールドを追加します。 prepareRow()

アクティベーションと実行:

カスタムモジュールを有効にします。
  1. インストール
  2. Migrate Toolsdrushコマンド(
  3. migrate-status)を使用します migrate-import --all migrate-rollback --all
  4. 結論:

この例は、Drupal 8の移行機能を示しています。 さまざまなソースプラグイン、プロセスプラグイン、および多様な移行ニーズを処理するカスタムソリューションの可能性を調べてください。

よくある質問(FAQS):

(これらは、事実であり、関連性があるため、入力からほとんど変化していません。)

Drupal 8に移住するための前提条件は何ですか?

    移行のためにDrupal 8サイトを準備するにはどうすればよいですか?
  • 移行プロセスを実行するにはどうすればよいですか?(答えは同じままです)
  • 移行プロセス中に私のコンテンツはどうなりますか?(答えは同じままです)
  • 移行プロセスが失敗した場合はどうすればよいですか?
  • サイトの構成をDrupal 8に移行できますか?
  • サイトのテーマをDrupal 8に移行するにはどうすればよいですか?
  • 移行をロールバックできますか?(答えは同じままです)
  • DRUPAL 8?で移行したコンテンツを更新するにはどうすればよいですか(答えは同じままです)
  • 部分的な移行を実行できますか?(答えは同じままです)
  • を持っている場合は、を実際のリンクに置き換えることを忘れないでください。

以上があなたの最初のDrupal 8移行の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート