Belirli öğeler için yapılandırma içe aktarma işlemi başarısız görünüyor. Bunu nasıl düzeltirim?

Aug 17 2020

Yapılandırmayı geliştiriciden aşamalandırmaya senkronize ettikten sonra, tüm değişikliklerin içe aktarılmasını ve "İçe aktarılacak yapılandırma değişikliği yok" mesajının görüntülenmesini bekliyorum.

Değişikliklerin çoğu içe aktarıldı, ancak içe aktarmanın başarısız olduğu görünen altı öğe kaldı. Veya en azından içe aktarılacak öğeler listesinden temizlemeyin.

Etkin konfigürasyonun neden aşamalı olarak güncellenmediğini anlamıyorum.

Tümünü içe aktarmanın yanı sıra, her öğeyi ayrı ayrı içe aktarmayı da denedim ve başarılı olamadım.

Kullanıcı arayüzünü kullanmanın yanı sıra, drush cim'i de denedik. Drush, yapılandırmanın başarıyla içe aktarıldığını doğrular. Ancak drush cim'i tekrar çalıştırırsam, aynı 6 dosya kalır.

İçe aktarma işlemi neden başarısız görünüyor ve bunu düzeltmek için ne yapmalıyım? Aktif konfigürasyonum bir şekilde bozulmuş mu?

Sorunu göstermek için bir ekran görüntüsü ve bazı kodlar.

UI aracılığıyla

Drush ile

    [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]:
     >

Yanıtlar

3 sonfd Aug 17 2020 at 20:24

Bu tür bir şeyin, senkronizasyon dizininizdeki yapılandırmanın pek meşru olmaması nedeniyle olduğunu buldum. Tahminimce bu sadece sahneleme değil, geliştirme ve yerel ortamlarınız için de bir sorun.

Bu sorunun nedeninin genellikle iki şeyden birinin sonucu olduğunu buldum:

1. Yapılandırma dosyaları manuel olarak değiştirilmiştir ve dosyadaki yapılandırma mümkün değildir.

Bir örnek, pastebin'inize bakıldığında, core.entity_view_display.node.page.default.yml için yapılan değişiklik , oluşturulan alanı o ekrandaki gizli alanlar listesinden kaldırmaktır. Ancak, alanın nasıl görüntülenmesi gerektiğine dair bir yapılandırma yoktur. Bir alan görüntülenemez ve ayrıca gizlenemez. Yapılandırmanın bütünlüğünü korumak için, sistem her iki yerde de olmadığında varsayılan olarak bir alanı gizler.

2. Veritabanı güncellemeleri çalıştırıldı, yapılandırmayı değiştiren güncellemeler yapıldı, ancak yapılandırma güncellemeden sonra geliştirme ortamına aktarılmadı.

Bir örnek, pastebin'e bakıldığında, bazı yeni yapılandırma seçenekleri (uygun varsayılan değerlerle) eklenmiş gibi görünüyor. Ayrıca çalışmak değiştirildi bir modül gibi görünüyor trueve falsehiç 1ve 0.

Bu sorunu çözmek için:

Önce birincil geliştirme ortamınıza gidin. Ardından en son kayıt veritabanınızı alın, önbelleği temizleyin ve dağıtın (veritabanı güncellemeleri, ardından yapılandırmanızı içe aktarın). Sonuç, hazırlık aşamasında gördüğünüz şeyle aynı olmalıdır, yani bazı yapılandırmalar tam olarak senkronize edilmemiş gibi görünecektir. Bu beklenen bir durumdur (yukarıda açıklanan nedenlerden dolayı). Ardından yapılandırmanızı yeniden dışa aktarın, kesin ve yeniden dağıtın.

Gelecekte bu sorunu önlemek için:

  1. Yapılandırma dosyalarını doğrudan değiştirmeyin. Bunu yaparsanız, doğru anladığınızdan emin olmak için yapılandırmayı yerel olarak test edin (buna, yapılandırma dosyalarındaki birleştirme çakışmalarını çözdükten sonra da dahildir).
  2. Veritabanı güncellemelerini çalıştırdıktan sonra her zaman yapılandırmayı dışa aktarın. Bazen güncellemeler yapılandırmayı değiştirir.