Saya pikir ini adalah kasus penggunaan sederhana dari sistem manajemen Konfigurasi baru, tetapi saya belum beruntung menemukan cara untuk menyelesaikan ini:
Masalah
Saya ingin menyimpan konfigurasi di git dan menggunakan drush untuk mengekspor konfigurasi selama pengembangan dan kemudian pada penyebaran, impor konfigurasi. Cukup mirip dengan melakukan fitur revert di Drupal 7. Masalah saya adalah saya tidak ingin menyimpan kode akses di git untuk berbagai integrasi. Ini mengakibatkan konfigurasi ini dihapus pada
$ drush cim -y
Di mana saya melihat
Saya berharap akan ada daftar / konfigurasi sederhana untuk konfigurasi yang harus dikecualikan pada impor / ekspor. Tampaknya ada beberapa titik tetapi pasti telah dihapus lagi, karena tersedia pada rilis Drupal 8 saat ini.
Saya melihat bagaimana perubahan konfigurasi dibuat membandingkan storange aktif dan sinkronisasi untuk melihat apakah ada tempat di mana saya bisa menghapus perubahan, ini tampaknya tidak terjadi. Saya melihat bagaimana drush melakukan impor konfigurasi karena memiliki beberapa konfigurasi tidak termasuk itu sendiri, tetapi tidak terlihat seperti ini dapat diperluas. Saya melihat ConfigEvents
, tetapi semua ini tampaknya terjadi setelah impor, jadi sepertinya ini tidak dapat digunakan.
Apakah saya kehilangan sesuatu, atau apakah tidak mungkin hanya mengecualikan konfigurasi dari impor / ekspor?
sumber
Anda dapat menggunakan modul "Config Ignore": https://www.drupal.org/project/config_ignore
sumber
Anda dapat menggunakan kombinasi config_ignore dan config_split untuk ini.
Config diabaikan memungkinkan Anda untuk mengabaikan subset entitas konfigurasi selama impor (juga mencegah penghapusan sejak rilis 2.x). Sayangnya itu tidak mencegah pengecualian konfigurasi selama ekspor.
Untuk mengecualikan entitas konfigurasi selama ekspor, Anda dapat menggunakan config_split, buat entitas config_split baru, dan biarkan folder kosong. Ini mencegah konfigurasi diekspor ke sistem file; alih-alih, ia mengekspornya dalam database.
Saya menulis Kecualikan konfigurasi dari manajemen konfigurasi di Drupal 8 tentang topik ini.
sumber
Untuk membagi konfigurasi yang dapat Anda gunakan https://www.drupal.org/project/config_split .
Anda dapat membagi ekspor menjadi direktori berbeda yang kemudian dapat Anda abaikan.
Ada presentasi yang sangat bagus di drupal con dublin 2016 oleh orang-orang yang bertanggung jawab atas inisiatif CMI yang saya anjurkan untuk Anda periksa, apa pun yang terjadi.
sumber
Saya baru saja menguji @berdir dalam jawaban # 1 dan itu berjalan dengan sempurna. Hanya saya menambahkan sedikit catatan: Anda harus meletakkan seluruh konfigurasi di var ini, lengkap. Tanpa itu, $ config var tidak berjalan dengan benar.
Sesuatu seperti ini:
Dokumentasi: https://www.drupal.org/node/1928898
Catatan dari dokumentasi di atas: "Perhatikan bahwa nilai yang dikesampingkan melalui $ config dalam settings.php tidak akan dapat dilihat dari antarmuka administrasi Drupal."
sumber
$config['module.settings']['some']['value'] = 'foo';
Saya agak heran mengapa tidak ada yang menyebutkan alat Drush CMI sekarang. Kata-kata ajaibnya adalah
drush cexy
danconfig-ignore.yml
. Anda akan memiliki daftar yang dapat Anda sesuaikan. Kami membutuhkannya sekali untuk membuat instance blok dikecualikan sementara pada saat yang sama basis blok diproses.Sumber: https://www.previousnext.com.au/blog/introducing-drush-cmi-tools
Sumber: https://github.com/previousnext/drush_cmi_tools
sumber
Menggunakan config split (recommanded)
The Modul config perpecahan dibuat khusus untuk kebutuhan ini.
Split config terintegrasi dengan drush.
Hanya menggunakan Drush
Drush itu juga seharusnya bisa melakukan itu dengan menggunakan
--skip-modules
bendera.Anda dapat menambahkan baris berikut di drupal / drushrc.php di webroot proyek Anda untuk melakukannya secara otomatis.
Lihat http://www.drush.org/en/master/config-exporting/#ignoring-development-modules
Sayangnya ada bug dengan fungsi ini: https://github.com/drush-ops/drush/issues/1820 . Jadi untuk saat ini Anda juga perlu menambahkan file-file konfigurasi tersebut di .gitignore Anda sehingga file-file konfigurasi yang diekspor tidak dikomit. Mereka adalah yang sedang berlangsung untuk mungkin meninggalkan fungsionalitas ini (kereta) dari drush dalam mendukung config split.
sumber