特定のアイテムの構成のインポートが失敗しているようです。これを修正するにはどうすればよいですか?
構成を開発からステージングに同期した後、すべての変更がインポートされ、「インポートする構成の変更はありません」というメッセージが表示されることを期待します。
ほとんどの変更はインポートされましたが、インポートに失敗したように見える6つのアイテムが残っています。または、少なくともインポートするアイテムのリストからクリアしないでください。
アクティブな構成がステージングによって更新されないように見える理由がわかりません。
すべてをインポートするだけでなく、各アイテムを個別にインポートしようとしましたが、成功しませんでした。
UIを使用するだけでなく、drushcimも試しました。Drushは、構成が正常にインポートされたことを確認します。しかし、drush cimを再度実行すると、同じ6つのファイルが残ります。
インポートが失敗しているように見えるのはなぜですか?それを修正するにはどうすればよいですか?アクティブな構成がどういうわけか台無しになっていますか?
問題を説明するためのスクリーンショットといくつかのコード。
UI経由

ダッシュ経由
[easable]:sync$ drush cim +------------+-----------------------------------------------------+-----------+ | Collection | Config | Operation | +------------+-----------------------------------------------------+-----------+ | | block.block.schoolpwa_subtheme_bottommenu | Update | | | block.block.schoolpwa_subtheme_mainnavigation | Update | | | block.block.mainmenu2 | Update | | | block.block.websiteswitcher | Update | | | core.entity_view_display.node.page.default | Update | | | media_bulk_upload.media_bulk_config.pdf_bulk_upload | Update | +------------+-----------------------------------------------------+-----------+ Import the listed configuration changes? (yes/no) [yes]: > [notice] Synchronized configuration: update block.block.schoolpwa_subtheme_bottommenu. [notice] Synchronized configuration: update block.block.schoolpwa_subtheme_mainnavigation. [notice] Synchronized configuration: update block.block.mainmenu2. [notice] Synchronized configuration: update block.block.websiteswitcher. [notice] Synchronized configuration: update core.entity_view_display.node.page.default. [notice] Synchronized configuration: update media_bulk_upload.media_bulk_config.pdf_bulk_upload. [notice] Finalizing configuration synchronization. [success] The configuration was imported successfully. [easable]:sync$ drush cim
+------------+-----------------------------------------------------+-----------+
| Collection | Config | Operation |
+------------+-----------------------------------------------------+-----------+
| | block.block.schoolpwa_subtheme_bottommenu | Update |
| | block.block.schoolpwa_subtheme_mainnavigation | Update |
| | block.block.mainmenu2 | Update |
| | block.block.websiteswitcher | Update |
| | core.entity_view_display.node.page.default | Update |
| | media_bulk_upload.media_bulk_config.pdf_bulk_upload | Update |
+------------+-----------------------------------------------------+-----------+
Import the listed configuration changes? (yes/no) [yes]:
>
回答
この種のことは、同期ディレクトリの設定が完全に正当ではないためであることがわかりました。私の推測では、これはステージングだけでなく、開発環境やローカル環境でも問題になると思います。
この問題の原因は通常、次の2つのいずれかの結果であることがわかりました。
1.構成ファイルは手動で操作されており、ファイル内の構成はできません。
例として、ペーストビンを見ると、core.entity_view_display.node.page.default.ymlの変更は、そのディスプレイの非表示フィールドのリストから作成されたフィールドを削除することです。ただし、フィールドの表示方法に関する構成はありません。フィールドを表示したり、非表示にしたりすることはできません。構成の整合性を維持するために、システムは、フィールドがどちらの場所にもない場合、デフォルトでフィールドを非表示にします。
2.データベースの更新が実行され、構成が変更されましたが、更新後に構成が開発環境にエクスポートされませんでした。
例として、ペーストビンを見ると、いくつかの新しい構成オプション(適切なデフォルト値を使用)が追加されたように見えます。また、モジュールがtrue
andfalse
から1
andに変更されたように見えます0
。
この問題を解決するには:
まず、プライマリ開発環境に移動します。次に、最新の記録データベースを取得し、キャッシュをクリアして、デプロイします(データベースを更新してから、構成をインポートします)。結果は、ステージングで表示されるものと同じになるはずです。つまり、一部の構成が完全に同期されていないように見えます。これは予想されます(上記の理由により)。次に、構成を再エクスポートし、コミットして、再デプロイします。
将来この問題を回避するには:
- 設定ファイルを直接操作しないでください。その場合は、構成をローカルでテストして、正しく構成されていることを確認してください(これには、構成ファイルのマージの競合を解決した後も含まれます)。
- データベースの更新を実行した後は、必ず構成をエクスポートしてください。更新によって構成が変更される場合があります。