Yapılandırmayı farklı bir siteye nasıl alabilirim?


49

Başka bir sitenin yapılandırmasını içe aktarmayı denediğimde bu hatayı alıyorum:

Aşamalı yapılandırma içe aktarılamaz, çünkü bu siteden farklı bir siteden kaynaklanıyor. Yapılandırmayı yalnızca bu sitenin klonlanmış örnekleri arasında senkronize edebilirsiniz.

10 müşterim var ve site yapılandırmamı 10 farklı web sitesiyle senkronize etmem gerekiyor.
UUID sitesi, bir yapılandırmayı farklı bir web sitesiyle paylaşmak için bir sorundur. Bir çözüm var mı?


1
Burada başka bir güzel cevap drupal.stackexchange.com/q/152584/39617
digitgopher

Yanıtlar:


55

UUID'yi aşağıdakilerle birlikte alabilirsiniz:

drush config-get "system.site" uuid

Ve ile değiştirebilirsiniz

drush config-set "system.site" uuid "fjfj34-e3bb-2ab8-4d21-9100-b5etgetgd99d5"

Bununla aynı sitelere sahip olmalısınız.


Benim için çalıştı ... üç yıl sonra. Teşekkürler!
mrlexington

17

Yapılandırma Yönetimi, aynı site veya proje arasında yalnızca site a.com'dan b.com'a yapılandırma içe aktarma sorunlarını önlemek için senkronizasyon yapılandırmasına izin verir, bu doğrulama işlemini gerçekleştirmek için Drupal 8 her site için bir UUID oluşturur .

Aşağıdaki komutu çalıştırarak mevcut sitenizi UUID'ye alabilirsiniz:

drush cget system.site

Yukarıdaki komut bir sonraki listeye benzer bir çıktımız olacak:

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

Config içe aktarmanın farklı bir UUID'si var, UUID'yi aşağıdaki komutla onaylayabilirsiniz.

cat sites/default/config/staging/system.site.yml

Bu nedenle, aşağıdaki Drush komutunu kullanarak Site UUID'nin değerini değiştirmeniz gerekir:

drush cedit system.site

Yukarıdaki komut, evreleme config dosyalarında bulunan aynı UUID'yi ayarlamak için favori metin düzenleyicinizi kullanmanızı sağlar.

cat sites/default/config/staging/system.site.yml

UUID'yi değiştirdikten ve izinleri değiştirdikten sonra, example.com/admin/config/development/configuration sayfasını tekrar ziyaret ederseniz, tüm değişiklikleri, silme, yeniden adlandırma ve eklemeleri göreceksiniz.

kaynak: http://enzolutions.com/articles/2014/08/27/understanding-configuration-management-in-drupal-8/


9
Doğru, ancak başka bir yerde değişiklik yapmadan UUID sitesinin değiştirilmesinin, drupal'ın farklı bir UUID'ye sahip olan her alan / düğüm türünü / görünümü / ... farklı bir şey olarak kabul edeceği ve önce eskisini sileceği ve sonra yeniden yapacağını unutmayın. tüm içeriğinizi esasen silen, tekrar oluşturun.
Berdir

Tamam teşekkür ederim, ama özel bir sunucu ve linux bilgisi olmayan bir kullanıcı için kullanıcı dostu değil, temel / yeni başlayan kullanıcılar için bir çözüm var (ssh ve komut satırı olmadan, sadece bir ftp sunucusu) lütfen? Drush komut satırlarına ihtiyaç duyuyor ve müşterilerim için kullanıcı dostu değil.
Axel Briche

Tam olarak mevcut bir Drupal web sitesinin UUID'sini (yeni kurulum) dışa aktarılan konfigürasyonla (birlikte drush config-set system.site uuid "abcdef-...") eşleşecek şekilde değiştirirsem ne olur ?
GiDo

1
Güncelleme sitesi UUID'sini kopyalamak için bir satırlık komut. drush -y cset system.site uuid $(cat /path/to/config/system.site.yml | awk '/uuid/ { print $2 }')
ya.teck

10

Drupal Konsolunu Kullanma

Drupal Console ile aynı system.site- uuidtuşunu geçersiz kılarak başarabilirsiniz .

$ drupal config:override

Ardından system.site, uuidistendiğinde yapılandırma adını , yapılandırma anahtarını ve uygun değeri girin.

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  
------------------- -------------------------------------- -------------------------------------- 

1
Bence kabul edilen cevap bu olmalı.
Badri

7

Siteye veya veritabanına erişmeden sitenin UUID'sini alabilirsiniz.

Orijinal siteye / veritabanına erişiminiz yoksa, yine de sağlanan config dosyalarından senkronize edebilirsiniz. Yapılandırma sitenizin UUID kodunu içerecektir, bu yüzden önce onu ayarlamanız gerekir.

  1. Config / sync dizininizi bulun: Taşınmışsa, nereye yerleştirildiğini bulabilirsiniz settings.php. Şunu arayın:, $config_directories['sync']yolu listelenir.

  2. Bu yapılandırma yoluna gidin ve dosyayı arayın: system.site.yml Bu dosyada şunu arayın uuid: 86b376c5-385e-4d13-bf00-e5e5443540e3(belli ki farklı bir değere sahip olacaksınız). Bu değeri kopyala.

  3. Drush’ta, sitenizi, daha önce keşfettiğimiz uuid ile aynı siteye ayarlayın: drush cset system.site uuid 86b376c5-385e-4d13-bf00-e5e5443540e3

  4. Drush kullanarak config senkronize edin drush cim -y

  5. Hata alırsanız bunları okuyun . Sahiptim:

    • eksik bir modül (indirmek ve etkinleştirmek zorunda kaldım)
    • önce silmek zorunda kaldığım kısayol modülündeki içerik:
    • admin> config> Kullanıcı Arabirimi> Kısayollar

Bir kere yaptım, cimi yeniden salladım ve her şey bir cazibe gibi çalıştı!

Verilen konfigürasyondan geri yüklemeye çalışmadan önce yerel bir D8 örneği kurmuştum.


4

Drush cset ve drush cget kullanarak hedef site için UUID'yi değiştirebilirsiniz.

İlk önce UUID kaynağını alın:

$ 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 hedefini değiştirin

cd ~/Sites/destinationsite <-- your drupal site root
$ drush cset system.site uuid 86b376c5-385e-4d13-bf00-e5e5443540e3 

Şimdi yapabilirsin:

  1. Tarayıcınızdaki hedef siteye admin / config / development / configuration / full / import adresinden gidin
  2. yapılandırma arşivini seçin ve yükle'yi seçin
  3. Tüm yapılandırma öğelerinin bir listesini göreceksiniz
  4. Aşağıya doğru kaydırın ve tümünü içe aktar düğmesine tıklayın

0

Gucho Ca'nın cevabındaki talimatları uygularsanız ve hala sorun yaşıyorsanız, senkronizasyon yapılandırma dizininizde yazma izniniz olduğundan emin olun. Uuidleriniz aynı olsa bile, size aynı hata mesajını verecektir, ancak sisteminizde yazma izinleri yoktur.

Kontrol etmenin iyi bir yolu, Senkronize Etme bölümünün İçe Aktar sekmesine tıklamaktır. Doğru dosya izinlerine sahip değilseniz, size orada söyleyecektir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.