Saya tidak suka solusi "situs web kloning " yang menyiratkan dumping database dan mengimpor dump ini di lingkungan lain. Ini tidak terlihat seperti cara dunia nyata dalam menyebarkan beberapa contoh situs web yang sama (pementasan / prod / dev / dll).
Dengan D7 kami biasanya menggunakan profil khusus dan menggunakan drush untuk menginstal situs web dari profil ini (dan mungkin menggunakan fitur untuk sinkronisasi situs nanti). Ini memberi kami instalasi baru, tidak ada konten pengujian, tetapi berbagi pengaturan penting. Sinkronisasi konten umum akan dilakukan dengan migrasi, misalnya.
Saya mencoba mengelola beberapa instance D8 yang berbagi profil instal yang sama. Di mana tujuan akhir akan berbagi dan menyinkronkan konfigurasi situs. Dan setiap instalasi memiliki UUID situs yang berbeda. Saya tidak berhasil dalam menegakkan system.site uuid
variabel konfigurasi pada waktu instalasi (tentu saja saya dapat mengubah nilainya nanti, tetapi bagi saya sepertinya ini sudah terlambat, dan semua objek sudah dibuat dengan UUID yang berbeda, yang membuat sinkronisasi pertama menjadi mimpi buruk , di mana beberapa konten default harus dihapus, atau bahasa default merusak sinkronisasi karena tidak dapat dihapus, dll.).
Untuk menegakkan UUID ini saya mencoba menggunakan file settings.php yang dihasilkan dengan $config['system.site']['uuid']
nilai di dalamnya, gagal besar (pengaturan itu sepenuhnya diabaikan, bahkan setelah instalasi situs).
Saya juga telah melihat profil penginstal konfigurasi , yang saya tidak sepenuhnya mengerti, terutama cara untuk mencampur solusi ini dengan profil instalasi lain.
Jadi pertanyaannya adalah, apa cara terbaik untuk menyebarkan situs baru dari profil pemasangan:
- tanpa "kloning situs web" dan memanipulasi kesedihan SQL pada pembuatan situs (seperti pada pertanyaan situs kloning ).
- dengan instalasi bersih baru (tanpa sampah konten pengembang), menggunakan konfigurasi dan kode yang diekspor saja
- yang dapat mengelola instalasi default dan sinkronisasi nantinya
sumber
Pilihan lain:
sumber
Berdasarkan petunjuk @Ivan Jaros, Anda dapat mengatur opsi konfigurasi tertentu saat memasang profil. Jelas, ini hanya berfungsi pada instalasi dan tidak setelah situs sudah diinstal.
Di file .install profil Anda, Anda dapat menambahkan pengaturan konfigurasi default di
hook_install()
:Saya sudah mencoba ini secara lokal dan itu berhasil. Saya dapat menarik konfigurasi dari situs lain ke situs lokal yang baru diinstal menggunakan kode di atas (dengan set UUID yang tepat) tanpa menggunakan
drush cset
untuk mengubah situs UUID.Agaknya, Anda dapat mengatur UUID Anda untuk diambil dari file di lingkungan Anda di suatu tempat, atau variabel lingkungan, atau layanan, dan dengan demikian semuanya akan sama di situs mana pun dengan profil yang diinstal.
Saya berharap untuk melakukan hal yang sama dari
settings.php
tetapiConfigFactory
kelas tidak tersedia pada saat itu dan seperti yang Anda tunjukkan dalam pertanyaan Anda pengaturan melalui$config
disettings.php
tidak berpengaruh.sumber