Apakah mungkin untuk melakukan fungsi pembaruan modul tunggal melalui drush? Saya bisa melihat drush updatedb
mana yang tidak menggunakan nama modul sebagai argumen dan menjalankan semua pembaruan yang tersedia. Lalu ada drush pm-update
juga yang memeriksa file baru. yang dokumentasi mengatakan:
(sama seperti pm-updatecode + updatedb)
Apakah ini berarti jika saya menjalankan drush pm-update
setiap pembaruan yang tersedia (keluar dari update_function yang lebih baru) akan dilakukan? Apakah ada cara untuk hanya (db) memperbarui persis satu modul?
Jawaban:
Tidak, kamu tidak bisa.
Jika Anda ingin memperbarui masing-masing modul sendiri, perbarui hanya file satu modul dan kemudian jalankan updatedb.
sumber
drush dl
(Anda mungkin ingin menghapus modul yang lama terlebih dahulu sehingga Anda tidak menyimpan file yang lebih lama yang tidak ditujukan untuk versi yang baru!)Pada Drush 5.7 Anda dapat menjalankan perintah
drush pm-update --no-core module-name
. Drush akan secara otomatis membuat cadangan modul saat ini, mengunduh versi baru dan meminta Anda untuk memperbarui database.sumber
Jika Anda ingin menjalankan hanya satu pembaruan, Anda dapat menjalankan
drush eval foo_update_33()
, misalnya. Dalam praktiknya, ini sedikit lebih rumit dari itu karena Anda harus memuat file .install tetapi tidak banyak.Anda juga dapat mencoba solusi @ macaleaa:
drush php-eval 'module_load_install('my_module');my_module_update_7XXX();'
sumber
function devel_update_7000
adalah yang memiliki angka terendah, dan akan dieksekusi terlebih dahulu, lalufunction devel_update_7001
, dll.drush php-eval 'module_load_install('file_entity');file_entity_update_7211();'
baik
drush up someproject
, maupundrush upc someproject
tampaknya tidak hanya memperbaruisomeproject
modul. Cara berbeda untuk itu yang Anda inginkan adalah melalui:Berikut ini diskusi topik serupa di Drupal.org. Hati hati !
sumber
drush up someproject
APAKAH berhasil, TETAPI sayangnya memeriksa SEMUA pembaruan yang tersedia untuk modul yang diaktifkan secara default juga (yang tidak akan diperlukan), menulis "Pembaruan tersedia" untuk beberapa dari mereka, tetapi HANYA memperbarui proyek tertentu. Ini screenshotnya: i.imgur.com/TDDmB.png . Seperti yang Anda lihat, banyak pembaruan tersedia, tetapi hanya xmlsitemap yang diperbarui menggunakandrush up xmlsitemap
.Saya menggunakan Drush 5.9, & dapat memperbarui satu modul dengan sukses dengan perintah ini:
Jadi, misalnya, untuk memperbarui modul 'devel':
sumber
Saya percaya ini sekarang mungkin dengan Drush, menggunakan
up
:sumber
Saya memiliki situasi di mana tabel dibuat oleh fungsi pembaruan (
MYMODULE_update_7101
), tetapi tabel itu sedang diakses dalam kode di suatu tempat di setiap cache jelas dan hampir setiap panggilan drush (itu pada dasarnya mendapatkan nama tipe entitas untuk semua menu dan apa pun lain). Berlari lebih cepat daridrush updatedb
yangMYMODULE_update_7101
ketiga.Saya mencoba solusi yang disarankan oleh @macaleaa dan @moshe weitzman untuk menjalankan:
sebelum berjalan
drush updatedb
, tetapi ini tidak membantu - menjalankan drush gagal karenaupdatedb
mencoba lagi untuk menjalankanMYMODULE_update_7101()
dan kesalahan, mengatakan meja sudah ada. Pada dasarnya, kode di atas telah menjalankan pembaruan, tetapi tidak meninggalkan bekas pada sistem bahwa pembaruan telah dijalankan. Agaknya ada banyak hal lain yangupdate.php
harus dilakukan setelah menjalankan setiap pembaruan untuk menyimpan nomor versi terbaru untuk modul di db, dll.Saya pergi
update.php
untuk melihat bagaimana sebenarnya menjalankan setiap fungsi pembaruan dan apa yang dilakukan setelahnya, mencari fungsi untuk memanggil yang akan memanggil fungsi pembaruan dan juga melakukan semua hal lainnya. Saya akhirnya sampai pada ini:Yang sebenarnya saya jalankan dengan drush:
Itu menjalankan pembaruan, tidak ada masalah, tetapi kemudian versi MYMODULE 7101 masih muncul di daftar pembaruan ketika saya berlari
updatedb
, MESKIPUN itu berjalan tanpa kesalahan dan semuanya tampak bagus saat memeriksa situs.Agak macet dan terlambat 6 tahun, tapi semua baik-baik saja itu berakhir dengan baik?
sumber