📝

Drupal: Feedsを用いた一括登録と更新の例

2023/04/23に公開

概要

以下の記事で、Strapiを用いたネストされたフィールドに対する検索方法を調査しました。

https://zenn.dev/nakamura196/articles/425f987d9cbf9c

今回は同様のことを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としたため、この値に基づいて、新規・更新が判定されます。

まとめ

Feedsを用いた一括登録と更新、および異なるコンテンツタイプとの関連付けを行いました。参考になりましたら幸いです。

Discussion