web-dev-qa-db-ja.com

エンティティフィールドのストレージ情報がkey_valueテーブルに登録されていない場合、それは問題ですか?

これはDrupal 8(ベータ15))サイトであり、基本的な、いくつかのコンテンツタイプです。ステータスレポートページには次のように記載されています。

_Entity/field definitions
    Mismatch detected
    Mismatched entity and/or field definitions.
_

調査の結果、これはいくつかのフィールドが原因であることが判明しました。列コレクションの_key_value_テーブルに元のストレージ定義がないため、Drupal\Core\Entity\EntityDefinitionUpdateManager::getChangeList()はそれらを報告しています:_entity.storage_schema.sql_

(column-collection = _config.entity.key_store.field_config_エントリはすべてのフィールドにあります。)

私の質問は-これをどのように修正できますか?すべての構成は、すべてのフィールドのymlファイルを含む構成ファイル(ステージングディレクトリ)に保存されます。構成マネージャーは違いを報告せず、エクスポートはファイルを同じに保ち、インポートは何も変更しません。 drush updbも更新を報告しません。

このストレージ情報を同期/登録するために更新フックで呼び出す必要があるコマンドはありますか?何か案が?

7
itarato

GetChangedList()から正確に報告される内容によって異なりますが、モジュールがエンティティスキーマを次のように更新する必要があることが発生しています。

\Drupal::entityDefinitionUpdateManager()
->installFieldStorageDefinition('the_field_name', 'node', 'node', $field_storage_definition);

あなたが知る必要があるすべては変更レコードにあります: https://www.drupal.org/node/2554097

ステータスページに追加情報を提供する取り組みも進行中です: https://www.drupal.org/node/2554911

3
benjy