次のコンテンツを含むconfig/optional
フォルダを含むモジュールがあります。
paragraphs.paragraphs_type.my_paragraph_id.yml
field.field.paragraph.my_paragraph_id.field_my_field.yml
field.storage.paragraph.field_my_field.yml
core.entity_form_display.paragraph.my_paragraph_id.yml
core.entity_view_display.paragraph.my_paragraph_id.yml
これらのファイルは、uuidのない既存のインストールからエクスポートされています。モジュールを有効にしても、モジュールparagraphs
がまだ有効になっていないため、構成がインポートされません。 paragraphs
を有効にすると、期待どおりに段落タイプmy_paragraph_id
が作成されます。既存のフィールドfield_my_field
に基づいて新しいフィールドを作成できるため、field_my_field
のフィールドストレージも作成されます。ただし、フィールドは段落自体には作成されません。
設定ファイルをconfig/install
に移動してみましたが、その後は期待どおりに機能しました。フィールドは問題なく段落に作成されます。ただし、モジュールparagraph
はオプションである必要があり、その場合にのみ構成を作成する必要があります。そのため、オプションにする必要があります。
なぜconfig/optional
はフィールドをインストールしないのですか?
オプションの構成は、現在インストールされているモジュールに明示的に依存している場合にのみインストールされます。そうしないと、特定のサイトで削除することを選択した場合でも、モジュールをインストールするたびにその構成が再インストールされます。
その欠点は、インストールされているモジュールに依存する構成に依存する構成の灰色の領域がいくつかあり、これがこれによって検出されないことです。 shouldも機能しますが、明らかにこの場合は機能しません。
回避策として、インポートされていない構成の段落モジュールに強制された依存関係を追加すると、機能するはずです。 https://www.drupal.org/node/2404447 を参照してください