Dengan menggunakan manajer Konfigurasi Drupal 8 yang baru, bagaimana saya bisa mencegahnya memasang modul Devel pada lingkungan tertentu? Sejauh yang saya tahu, menginstalnya di lokal saya berarti lain kali saya mengekspor konfigurasi dan memindahkannya ke lingkungan saya yang lain (dev, test, prod), itu akan secara otomatis diaktifkan.
8
configuration-management
cambraca
sumber
sumber
drush
dapat diterima? Saya tahu beberapa hari yang laludrush config-export --skip-modules=devel
. Mungkin ada yang serupa tanpa menggunakan drush, tapi saya tidak tahu.Jawaban:
Metode: Drush
Drush dapat mengabaikan status ekstensi yang diaktifkan saat menyinkronkan konfigurasi.
drush cex --skip-modules=devel
drush cim --skip-modules=devel
Dengan alat Drush CMI Anda dapat beroperasi dengan daftar konfigurasi yang harus diabaikan.
drush cexy --ignore-list=/path/to/config-ignore.yml
drush cimy --delete-list=/path/to/config-ignore.yml
Metode: Modul
Anda dapat menggunakan modul Split Konfigurasi yang memungkinkan Anda untuk:
Konfigurasi Modul mode hanya baca
$settings['config_readonly'] = TRUE;
Dan modul lain adalah Lingkungan Config yang memungkinkan Anda untuk mengesampingkan konfigurasi berdasarkan per-lingkungan.
sumber
composer require --dev drupal/devel
. Bonus tambahan adalah pemasangan komposer lebih cepat, membuat prod menyebarkan lebih cepat.Pembaruan : Fitur yang dijelaskan di bawah ini baru-baru ini dihapus https://www.drupal.org/project/config_split/issues/2926505
Jika Anda menggunakan drush dalam proses penyebaran Anda, Anda dapat melakukan hal berikut:
Buat
drushrc.php
file di direktori yang sama dengan Andasettings.php
(misalnyadocroot/sites/default
:) dan letakkan yang berikut:Ini berarti, bahwa Anda dapat memanipulasi
drush cex
/drush cim
perintah untuk melewati modul, selama prosesnya.Anda dapat membaca lebih lanjut tentang Menggunakan Filter Modul Konfigurasi di Drush 8 .
sumber
drush cex --skip-modules
telah dihapus karena config_split seperti yang dijelaskan dalam masalah ini sehingga solusi di sini berdasarkan pada drush tidak bekerja untuk saya.Berikut adalah solusi berdasarkan solusi Duncanmoo menggunakan modul config_exclude
1. Instal config_exclude menggunakan Composer memerlukan --dev dan konfigurasikan
izinkan pengaturan.php untuk digunakan pada lingkungan dev lokal Anda
Tambahkan pengaturan config_exclude dalam file lokal
di sini adalah beberapa pengaturan sampel
NOTE1: config_filter adalah dependensi config_exclude jadi jika Anda tidak membutuhkannya, Anda dapat mengecualikannya di atas
CATATAN2: Ini
settings.local.php
bukan keharusan. Itu tergantung pada apakah dikendalikan oleh VCS Anda atau tidak.2. Komposer memerlukan --dev
Saat mengaktifkan modul yang murni untuk pengembangan, gunakan flag --dev:
Ini menghasilkan dependensi yang ditambahkan ke file composer.json di bawah keharusan-dev:
Jadi, jika Anda menginstal situs TANPA modul dev Anda gunakan:
CATATAN: Pada lingkungan pementasan dan produksi Anda, Anda harus selalu melakukan --no-dev
3. gunakan drush cex seperti biasa
tidak akan mengekspor pengaturan modul yang dikecualikan
CATATAN: Saya punya diperhatikan core.extension pengaturan tampaknya telah dimodifikasi setelah menjalankan perintah di atas tetapi .yml sesuai tidak pernah ditulis pada hard drive (bahkan setelah mengkonfirmasikan
will be deleted and replaced with the active config
) sehingga tidak ada yang akan berkomitmen, saya kira itu tergantung pada internal modul config_excludesumber
Ada masalah yang menarik untuk Drupal 8.3.x: Izinkan modul pengembangan untuk keluar dari konfigurasi-ekspor . Konsensus umum adalah bahwa Split Konfigurasi saat ini merupakan solusi terbaik.
Komentar oleh swentel :
Komentar oleh geerlingguy :
sumber
Split Konfigurasi mungkin merupakan solusi yang layak untuk beberapa orang.
https://www.drupal.org/project/config_split
sumber
Ada cara yang rapi untuk melakukan hal ini, di mana Anda berakhir dengan modul dev Anda yang dibuat di komposer untuk kenyamanan dan konfigurasi modul-modul itu tidak ditambahkan ke ekspor konfigurasi Anda (ada 2 bagian):
1. Komposer memerlukan --dev Ketika mengaktifkan modul yang murni untuk pengembangan kemudian gunakan flag --dev:
Ini menghasilkan dependensi yang ditambahkan ke file composer.json di bawah keharusan-dev:
Jadi, jika Anda menginstal situs TANPA modul dev Anda, Anda mengatakan:
NB: Tentang lingkungan pementasan dan produksi Anda, Anda harus selalu melakukan --no-dev
2. Gunakan modul config_split
Modul pemisahan konfigurasi memungkinkan Anda membuat pengelompokan ekspor konfigurasi yang dapat diaktifkan atau dinonaktifkan di lingkungan.
Saya sebenarnya memiliki 3 split:
sumber
Saya membuat skrip kecil untuk melakukan semuanya dalam satu kesempatan.
sumber
Anda juga dapat melihat modul Config Ignore .
sumber
Anda dapat menggunakan modul override penyebaran untuk ini. Baca tautan berikut untuk penjelasan terperinci:
http://dcycleproject.org/blog/46/continuous-deployment-drupal-style
Namun , Cara terbaik untuk melakukan ini adalah dengan menonaktifkan modul Anda di lokal dan kemudian mengekspor konfigurasi.
Drupal menyediakan cara untuk mengesampingkan pengaturan konfigurasi
settings.php
, tetapi tidak valid untuk menonaktifkan / mengaktifkan modul.Dari
default.settings.php
:sumber