web-dev-qa-db-ja.com

フィールドのカーディナリティを変更するにはどうすればよいですか?

私は2つのコンテンツタイプを持っています:PersonおよびOffice既存のコンテンツ。 Personコンテンツタイプには、Officeノードへのエンティティ参照フィールドがあり、単一の参照のみを許可します。これを変更して、Officeノードを無制限に選択できるようにする必要があります。

Drupal 8はフィールドのカーディナリティの変更を防ぎ、次のエラーメッセージを表示します。

データベースにこのフィールドのデータがあります。フィールド設定は変更できなくなりました。

最初はマイグレーションを書く必要があると思いましたが、Drupalインスタンスにデータを取り込むことを目的としているようです。次に、 pdate functions の記述について読みました。 (また このドキュメント )。

migrate-plusプラグインを見つけ、フィールドストレージ設定をエクスポートし、カーディナリティを変更して、設定を再インポートするためのページをいくつか追加しました。
カーディナリティが1から無制限になるとすれば、この変更によってデータが破壊されることはないと想像できます。そして、私の経験的データは、これが事実であることを示唆しています。 migrate-plus画面および構成のエクスポートとインポートを介してこの変更を行いましたが、データはまだフィールドにあります。

これは安全な操作ですか、それとも更新関数を作成する必要がありますか?

4
Jed Anderson

データベースにこのフィールドのデータがあります。フィールド設定は変更できなくなりました。

そのメッセージは誤解を招くものであり、実際にはnotカーディナリティを上げる機能を制限します。唯一の制限は、カーディナリティを現在のアイテムの最大量よりも低い値に設定できないことです。

7
Berdir