別のサイトの構成をインポートしようとすると、このエラーが発生します。
ステージングされた構成は、このサイトとは異なるサイトからのものであるため、インポートできません。このサイトの複製されたインスタンス間でのみ構成を同期できます。
10人の顧客がいますが、サイト構成を10の異なるWebサイトと同期する必要があります。
サイトUUIDは、別のWebサイトと設定を共有するための問題です。解決策はありますか?
別のサイトの構成をインポートしようとすると、このエラーが発生します。
ステージングされた構成は、このサイトとは異なるサイトからのものであるため、インポートできません。このサイトの複製されたインスタンス間でのみ構成を同期できます。
10人の顧客がいますが、サイト構成を10の異なるWebサイトと同期する必要があります。
サイトUUIDは、別のWebサイトと設定を共有するための問題です。解決策はありますか?
回答:
UUIDは次の方法で取得できます。
drush config-get "system.site" uuid
そして、あなたはそれを変更することができます
drush config-set "system.site" uuid "fjfj34-e3bb-2ab8-4d21-9100-b5etgetgd99d5"
それで、あなたは同じサイトを持たなければなりません。
構成管理では、サイトa.comからb.comに構成をインポートする問題を回避するために、同じサイトまたはプロジェクト間の同期構成のみが許可され、この検証を達成するためにDrupal 8 は各サイトのUUIDを生成します。
次のコマンドを実行して現在のサイトのUUIDを取得します。
drush cget system.site
上記のコマンドでは、次のリストと同様の出力が得られます。
uuid: 236fa77c-d83e-42de-8a03-03c574c00160
name: Drupal 8
mail: user@example.com
slogan: ''
page:
403: ''
404: ''
front: node
admin_compact_mode: false
weight_select_max: 100
langcode: en
構成インポートには別のUUIDがあります。次のコマンドでUUIDを確認できます
cat sites/default/config/staging/system.site.yml
そのため、次のDrushコマンドを使用してサイトUUIDの値を変更する必要があります。
drush cedit system.site
上記のコマンドを使用すると、お気に入りのテキストエディターを使用して、ステージング構成ファイルに存在する同じUUIDを設定できます。
cat sites/default/config/staging/system.site.yml
UUIDを変更して権限を変更した後、もう一度example.com/admin/config/development/configurationページにアクセスすると、すべての変更、削除、名前の変更、追加が表示されます。
ソース:http : //enzolutions.com/articles/2014/08/27/understanding-configuration-management-in-drupal-8/
drush config-set system.site uuid "abcdef-..."
)を一致させるとどうなりますか?
drush -y cset system.site uuid $(cat /path/to/config/system.site.yml | awk '/uuid/ { print $2 }')
— キーをオーバーライドすることで、Drupalコンソールで同じことを実現できます。system.site
uuid
$ drupal config:override
次に、プロンプトが表示されたら、構成名system.site
、構成キーuuid
、および適切な値を入力します。
Enter configuration name [advagg.settings]:
> system.site
Enter the configuration key [uuid]:
> uuid
Enter the configuration value:
> 656165f1-1017-45a1-9bd8-f70e31cf29ab
Configuration name system.site
------------------- -------------------------------------- --------------------------------------
Configuration key Original Value Override Value
------------------- -------------------------------------- --------------------------------------
uuid 7622bb19-5f3f-452d-82a3-c0a88241e789 656165f1-1017-45a1-9bd8-f70e31cf29ab
------------------- -------------------------------------- --------------------------------------
サイトまたはデータベースにアクセスせずに、サイトのUUIDを取得できます。
元のサイト/データベースにアクセスできない場合でも、提供されている構成ファイルから同期できます。構成にはサイトのUUIDが含まれるため、最初に設定する必要があります。
config / syncディレクトリを見つけます:移動した場合、で設定された場所を見つけることができますsettings.php
。以下を探します:
$config_directories['sync']
パスをリストします。
その構成パスに移動し、ファイルを探します。system.site.yml
そのファイルで、探しますuuid: 86b376c5-385e-4d13-bf00-e5e5443540e3
(明らかに異なる値になります)。その値をコピーします。
急いで、私たちが発見したのと同じサイトuuidにサイトを設定します。
drush cset system.site uuid 86b376c5-385e-4d13-bf00-e5e5443540e3
drushを使用して構成を同期する
drush cim -y
エラーが発生した場合は、それらをお読みください。私が持っていた:
それをやった後、私はcimを再実行し、すべてが魅力のように機能しました!
提供された構成から復元する前に、ローカルD8インスタンスをインストールしました。
drush csetおよびdrush cgetを使用して、宛先サイトのUUIDを変更できます。
最初にソースUUIDを取得します。
$ cd ~/Sites/sourcesite <-- your drupal site root
$ drush cget system.site uuid
This will return something like:
'system.site:uuid': 86b376c5-385e-4d13-bf00-e5e5443540e3
宛先UUIDを置き換えます
cd ~/Sites/destinationsite <-- your drupal site root
$ drush cset system.site uuid 86b376c5-385e-4d13-bf00-e5e5443540e3
次のことができます。
これをやり直すことにうんざりしている人々のために。私はついにこれを自動的に行う方法の修正を得ました。UUIDを設定するには、drushを使用してconfig:importのプリコマンドを追加する必要があります。ここですべてを読んでください:https : //stefvanlooveren.me/blog/fixing-systemsite-uuid-config-import-problem-drupal-8