中央コードベース(Gitリポジトリ)があります。このコードベースから、すでにいくつかのWebサイトを展開しました。
セントラルコードベースでは、$config_directories[CONFIG_SYNC_DIRECTORY] = 'config/base';
を設定しています。このディレクトリには、drush cex -y
の後に、新しく追加した構成をデプロイするすべての構成が含まれています。
しかし私がした後:
しかし、既存のサイト(機能に基づく)からすべてのコンテンツが必要なため、このデータベースをコピーして戻す必要があります。
UUIDが一致しないなどのエラーが表示されます...必要なことは可能ですか?そして、それをどのように機能させるのですか?
(私はすでに正しいuuid:
をsystem.site.yml
に手動でコピーして貼り付けようとしましたが、それでも機能しませんでした)。
更新:私は自分のローカルにdockerを使用しますDrupal 8環境
基本的に、両方のサイトが同じUUIDを共有していることを確認する必要があります。
しぶきはありますか?その場合:
古いサイトのシェル(からコピー)でUUIDを取得します
drush cget system.site uuid
( 'system.site:uuid':bfb11978-d1a3-4eda-91fb-45decf134e25-値をコピーするようなものを取得します)
次に、新しいサイトのシェルで(コピー先)UUIDを設定します
drush cset system.site uuid <your_uuid>
EG:drush cset system.site uuid bfb11978-d1a3-4eda-91fb-45decf134e25
次に、「プレースホルダー...インポートする前にこれらのエンティティを削除する必要があります」のようなエラーが発生した場合。次のコマンドを実行します。
drush ev '\Drupal::entityManager()->getStorage("shortcut_set")->load("default")->delete();'
結局、drush cim sync -y
は、環境間で設定を同期できるようにする必要があります。
あなたができる簡単なアプローチは、サイトのuuidがconfig/sync/system.site.yml
ファイル。そのため、ターミナルでcat(Linux)またはtype(Windows)を使用して、uuidをターミナルに表示できます。
cat config/sync/system.site.yml | grep uuid
そして、
// using console
drupal config:override "system.site" uuid "<new-uuid>"
// OR, using drush
drush config-set "system.site" uuid "<new-uuid>"
ショートカットセットのプレースホルダーエラーが発生した場合
// using console
drupal entity:delete shortcut_set default
// OR, using drush
drush ev '\Drupal::entityManager()->getStorage("shortcut_set")->load("default")->delete();'
次に、drush cim
[〜#〜]または[〜#〜]drupal ci