Di tempat kerja, kami bergerak untuk menyiapkan situs baru di git dan melakukan pengembangan lokal. Sejauh ini saya telah membuat file drush make bersama dengan profil instalasi, dan saya memiliki skrip ini melalui wayang sehingga ketika pengguna melakukan klon baru dari repositori, itu akan mengunduh semua paket dan menjalankan instalasi situs dasar. Ini berfungsi baik.
Sekarang, pertanyaan saya adalah kapan saya harus menggunakan modul baru untuk sebuah situs. Sebagai contoh, kami membangun modul baru untuk situs tersebut. Saya ingin pengembang lain menarik dari git dan memasang modul baru secara otomatis. Menambahkannya ke file drush make hanya akan menyebabkannya diunduh, dan menjalankan 'drush si' akan menyebabkan situs diinstal ulang, menghapus semua data.
Apa cara terbaik untuk mencapai ini?
Edit
Saya merasa saya belum menjelaskan ini dengan benar. Saya mencari cara untuk mengaktifkan modul secara otomatis berdasarkan entri makefile di drush. Idenya adalah pengguna memeriksa sebuah proyek, dan kemudian saya akan menjalankan boneka 'drush make' dan 'drush si' jika tidak ada file settings.php. Yang perlu saya pikirkan adalah kapan pengguna melakukan penarikan berikutnya dan kami telah menambahkan modul baru, cara mengaktifkannya secara otomatis melalui beberapa skrip. Jika perlu, saya akan menulis sesuatu untuk mengurai makefile dan menjalankan 'drush en' secara manual, tetapi saya ingin menemukan sesuatu yang sudah dibuat sebelumnya untuk melakukan ini.
sumber
Jawaban:
Saya bekerja untuk perusahaan yang memiliki aliran dev / stage / prod besar yang berusaha mengotomatisasi sebanyak mungkin. Semuanya harus dilakukan dalam kode, ditulis menggunakan fitur atau memperbarui kait.
Pada dasarnya, yang Anda inginkan adalah memiliki 1 modul khusus yang ada untuk berisi kait pembaruan. Dengan cara ini, ketika pengembang menarik pembaruan ke basis kode, mereka menjalankan pembaruan db, dan itu dapat melakukan apa saja yang mengaktifkan / menonaktifkan modul yang perlu terjadi. Kait pembaruan tidak memengaruhi pemasangan baru, karena diasumsikan bahwa modul tersebut sudah mutakhir ketika dipasang, dan hanya akan menjalankan pembaruan yang lebih baru.
Untuk meringkas:
Berikut adalah pos yang membahas tentang pendekatan yang sama dan memberikan contoh kode.
sumber
Ini pertanyaan yang bagus.
drush make
nyaman untuk mengunduh modul. Kami tidak ingin berkontribusi pada modul mengasapi. Di sini kasus dibuat untuk tidak memperpanjangmake
dengan cara ini. Mungkin Fitur adalah yang terbaik untuk mengelola status yang diaktifkan modul situs, serta aspek konfigurasi lainnya.sumber
Pertimbangkan untuk memodifikasi alur kerja Anda.
Sepertinya Anda ingin melakukan pekerjaan terdistribusi dan "berbagi" mengaktifkan modul dan nilai konfigurasi lainnya ... entah bagaimana.
Jika Anda memikirkannya - bahkan Drupal "inti" dan Drupal.org tidak melakukan ini. Kode dikirimkan ke Core dan modul komunitas yang dijalankan dalam Proses Pembangunan Berkelanjutan. Drupal.org dan banyak proyek menggunakan Jenkins.
Untuk pemasangan Jenkins yang diarahkan pada pengembangan Drupal, ia juga menggunakan Phing, lihat repo git ini: http://reload.github.io/jenkins-drupal-template/
Menggunakan Jenkins, Anda dapat mendorong kode ke repo master Git Anda dan membuat situs yang dibangun untuk situs demo dari Profil Instalasi dan Drush Makefile (s). Ini tidak menyelesaikan masalah Anda dengan tepat tetapi tidak memberikan 1 lokasi Anda semua mendorong perubahan untuk menambah / mengaktifkan / menghapus modul dan mudah-mudahan Anda semua tidak "memecah build".
Dengan asumsi build tidak rusak - aman untuk menarik perubahannya ke sistem pengembangan lokal Anda.
Jenkins + server Staging atau Development hanya 1 bagian dari pengembangan.
Alur kerja lokal Anda dapat menggunakan profil instalasi + makefiles. Pertimbangkan berbagi konten menggunakan modul khusus dengan Migrasikan jika Anda mampu membayar waktu pembuatan konten. Contoh berbagi konten dengan pengembang menggunakan Migrasi, dan penggunaan Phing dapat dibaca di sini:
http://marzeelabs.org/blog/2014/03/17/coding-as-a-team-content-fixtures/ http://marzeelabs.org/blog/2014/03/03/coding-as-a- team-automation-using-phing /
Terakhir lihat PDF ini pada sesi dari Drupal Camp Ohio 2014 tentang integrasi berkelanjutan dan bekerja dengan tim Anda:
sumber
Untuk tujuan yang sama kami menggunakan Guru . Ini menggunakan settings.php untuk memberikan informasi tentang apa modul master. Dengan perintah sederhana,
drush master-execute
semua modul (dan dependensinya) yang hilang diaktifkan dan modul yang tidak digunakan lagi dinonaktifkan.Saat ini modul tidak membaca informasi dari makefile, tapi mungkin itu bisa menjadi pilihan untuk rilis baru.
sumber
Anda dapat mengaktifkan modul baik secara manual dengan melalui opsi Modul atau dengan terminal menggunakan perintah drush
dan seterusnya.
sumber
Modul dapat diaktifkan dalam 2 cara:
baik dari terminal menggunakan perintah drush oleh:
A.
drush dl modulename
- untuk mengunduh modul pertamaB.
drush en -y modulename
- untuk mengaktifkan modulDengan menggunakan opsi menu Modul dan kemudian mengaktifkan modul dari jumlah modul yang ditampilkan.
sumber
module_enable()
sebagai contoh. Atau dengan mengimpor basis data yang sudah disiapkan.Saya ingin beberapa ini yang pasti. Fungsi make digunakan untuk mengunduh berbagai bagian situs: modul, tema, dan proyek melalui git. Ketika Anda menuliskan profil instalasi Anda, Anda menulis di file info modul tergantung. Masalahnya adalah ketika Anda perlu menambahkan modul baru untuk profil instalasi Anda untuk profil yang ada - apakah saya benar?
Untuk itu Anda perlu menggunakan hook_update_N ketika N berdiri untuk pembaruan nomor. Hook digunakan untuk modul yang perlu melakukan tindakan seperti: memperbarui skema, menambahkan variabel dan digunakan untuk situs dan distribusi, seperti OpenScholar, untuk mengaktifkan modul yang baru diunduh di situs langsung.
Anda mungkin perlu menambahkan ini dalam modul paling umum dan fungsinya akan terlihat seperti ini https://github.com/openscholar/openscholar/blob/SCHOLAR-3.x/openscholar/modules/os/os.install#L16
Kail harus berada di file module.install. Jika Anda menggunakan UI, Anda harus mengunjungi www.site.com/update.php dan jika Anda menggunakan drush gunakan saja perintah drush updb.
sumber
Seperti yang saya mengerti, file Drush .make hanya mengunduh proyek dari drupal.org, jika Anda ingin mengaktifkan beberapa modul, dapat dilakukan dengan profil instalasi ** (. Install) **. Profil instalasi memberi Anda opsi, modul apa yang ingin Anda aktifkan pada saat instalasi.
Baru-baru ini saya juga berkontribusi satu distribusi dengan bantuan file .make. Bahkan saya berbagi seluruh pengalaman .membuat di sini . Saya tahu ini tidak terkait dengan apa yang sebenarnya Anda tanyakan tetapi dapat membantu Anda memahami apa yang sebenarnya dilakukan .membuat file.
Jadi dari seluruh tugas ini, apa yang saya mengerti, menggunakan file .make Anda tidak dapat mengotomatiskan mengaktifkan modul. Untuk melakukan ini, Anda perlu mengikuti beberapa pendekatan lain.
Saya harap URL forum ini dapat membantu Anda. Otomatisasi Drupal dengan skrip Bash dan Drush .
Anda perlu menulis beberapa skrip bash di mana tepatnya Anda akan menggunakan perintah Drush.
sumber
Bagaimana dengan menggunakan file Drush Make dalam hubungannya dengan Profil Instalasi Drupal? lihat: https://drupal.org/node/1022020
sumber