サイトのステージングインスタンスでdrush cim -yを実行すると、次のエラーが発生します。
Drupal\Core\Config\ConfigImporterException:構成の同期の検証中にエラーが発生しました。 Drupal\Core\Config\ConfigImporter-> validate()内(/var/www/xeno/docroot/core/lib/Drupal/Core/Config/ConfigImporter.phpの728行目)。
次の理由により、インポートが失敗しました:ソースストレージのサイトUUIDがターゲットストレージと一致しません。パラグラフタイプとパラグラフタイプイメージのエンティティが存在します。これらのエンティティは、インポートする前に削除する必要があります。
これは私がやったことです:
ステージングからデータベースをコピーし、最新のコードを引き出しました
ランdrush cex -y
コミットされた構成
最新のコードのステージングとプルに行った
drush cim -y
を実行して、上記のエラーを取得します
ローカルおよびステージングでdrush cget system.site uuid
を実行すると、同じUUIDが返されるため、このエラーが発生する理由がわかりません。
エラーを修正するにはどうすればよいですか?
実際、私はSFTPデプロイを使用していて、ステージングサイトにファイルsystem.site.yml
がありませんでした。すべてのファイルを再デプロイしただけで、問題は解消しました。
drushを使用してローカルサイトのUUIDを変更する でこれを修正できます。
また、設定を新しいデータベースにインポートする前に、drush entity-updates -y
とdrush en <module_name> -y
を含む特定のモジュールを組み合わせて実行する必要もありました。
更新:drush entity-updates -y
はもう使用しないでください。 https://www.drupal.org/node/3034742 を参照してください
従来は、configをインポートする前に以下を使用します。
drush cset system.site uuid "6ba9bxxx-xxxx-438x-9c8x-e5x7x3d0x347"
またはdrupal console:
$ drupal config:override
Enter configuration name []:
> system.site
Enter the configuration key [uuid]:
> uuid
Enter the configuration value:
> 6ba9bxxx-xxxx-438x-9c8x-e5x7x3d0x347
これを何度も繰り返すのに飽きた人のために。これを自動的に行う方法の修正をついに手に入れました。 uuidを設定するには、drushを使用してconfig:importのプリコマンドを追加する必要があります。それについてここですべて読んでください: https://stefvanlooveren.me/blog/fixing-systemsite-uuid-config-import-problem-drupal-8