drupal 8で、コンテンツタイプと関連コンテンツをあるWebサイトから別のWebサイトにインポート/エクスポートする方法は?
Drupal/consoleコマンドconfig:export:content:typeがここで役立ちます。
モジュールを作成してからこのコマンドを実行すると、すべてのハードワークが実行されます。
drupal config:export:content:type --module=new_module --remove-uuid --remove-config-hash content_type_to_export
これにより、モジュールのconfig/installディレクトリに配置されます。新しいサイトでモジュールを有効にすると、これが自動的に実行されます。
私が持っていた1つの落とし穴は、すでにコアに含まれているconfig用のファイルをいくつか追加することでした。削除しただけで大丈夫でした。基本的に、ymlファイルがファイル名でコンテンツタイプを参照していない場合は、それが必要ない可能性があります。
詳細については:
drupal help config:export:content:type
Drupal 8によって提供される同期機能を介して、コンテンツタイプとそのフィールドタイプおよびフィールドストレージをエクスポート/インポートできます。このURL:admin/config/development/configuration
この回答では、 Drush がインストールされていると仮定します。 (そうでない場合は、ここで構成ファイルを管理できます/ admin/config/development/configuration)。
では、SiteAの場合は、ターミナルを開いてSiteAフォルダーに移動します。設定を/ sites/default/devフォルダーに書き込むとしましょう。したがって、次のコマンドを記述します。
drush cex dev
すべてのWebサイト構成がエクスポートされます。新しいコンテンツタイプを作成した場合、それらはdevフォルダーにエクスポートされます。
次に、SiteAのdevフォルダーに移動し、コンテンツタイプに関連するすべてのymlファイルをコピーします。
その後、同じフォルダーに貼り付けますが、今回はSiteBに貼り付けます。最後に、ターミナルでSiteBフォルダーに移動し、次のコマンドを記述します。
drush cim dev
編集:
Devフォルダーを使用する場合は、settings.phpにこの構成が必要です。
$config_directories['dev'] = 'sites/default/dev';
また、私の答えは、コンテンツタイプの構成のみをエクスポートします。内容ではありません。
ソースと宛先のWebサイトが同じで、構成をインポート/エクスポートできる場合は、構成のエクスポート/インポートを使用するのが最善の解決策です。そうでない場合は、 features module を使用するのが適切な解決策です。
機能モジュールは、Drupalの機能のキャプチャと管理を可能にします。機能は、Drupalエンティティのコレクションであり、これらを組み合わせることで特定のユースケースを満たします。
機能は、エクスポート可能なモジュールからさまざまなサイト構築コンポーネントを取得し、それらを1つの機能モジュールにバンドルするためのUIとAPIを提供します。機能モジュールは、他のDrupalモジュールと同じですが、情報ファイルに追加情報が含まれているため、プログラムで構成を確認、更新、または元に戻すことができます。