Drupal: Feedsを用いた一括登録と更新の例
概要 以下の記事で、Strapiを用いたネストされたフィールドに対する検索方法を調査しました。 今回は同様のことをDrupalで行うにあたり、その準備である、コンテンツの一括登録及び更新方法に関する備忘録です。上記の記事と類似の構造を設定するために、BookとAuthorという2つのコンテンツタイプを対象にします。 content typeの作成 BookとAuthorのcontent typeを作成します。 Author 以下、Authorの例です。 id, name, hobbyというフィールドを作成します。feedsは後から追加されるものなので無視してください。 Book Bookのフィールドとして、authorsを作成し、Cotentをフィールドとして選択します。 Reference typeのcontent typeとしてAuthorを選択しました。 feedsの設定 一括登録のための設定を行います。 Author 以下にアクセス /admin/structure/feeds csvをアップロードして登録するため、以下のように設定します。 フィールドNAMEとHOBBYを以下のように設定します。titleは必須項目としていたため、設定しています。またifをUniqueな項目としています。 Book Bookに関する注意点として、authorsは他のコンテンツタイプのidを指定するようにしています。具体的には、以下の図のように、Reference byに「node.field_id」を指定しています。 feedsによる一括登録 /admin/content/feed Author 先に作成したcsvファイルアップロードすることで、以下のように登録が完了します。 Book authorsに正しくcontent typeがauthorのコンテンツが紐付けられています。 (参考)Feedsを用いた更新 authorのfeeds設定を設定するために、以下にアクセス /admin/structure/feeds/manage/author?destination=/admin/structure/feeds 以下のように、「Update existing content items」で「Update existing content items」とすることで、更新を行うことができました。「field_id」をUniqueとしたため、この値に基づいて、新規・更新が判定されます。 ! 「Replace existing content items」や「Update existing content items」などの挙動の違いを十分に理解できていないため、使用される際は検証の上、ご利用ください。 まとめ Feedsを用いた一括登録と更新、および異なるコンテンツタイプとの関連付けを行いました。参考になりましたら幸いです。