Saya memiliki 7 situs drupal, tempat ia menyimpan revisi node dan field. Saya menyimpan revisi untuk kasus di mana secara tidak sengaja versi yang salah baru disimpan dan saya ingin kembali.
Tapi, sekarang saya ingin membersihkan dan mengoptimalkan database sehingga mengambil lebih sedikit ruang di hard disk.
Apa sajakah metode menghapus semua revisi kecuali yang sekarang, untuk semua node / bidang situs?
Belum ada rilis stabil untuk penghapusan Revision tetapi port D7 sedang dalam perjalanan (tidak yakin apakah itu fungsional sama sekali).
Di utas ini, seseorang menyarankan menggunakan VBO untuk mengisolasi revisi dan menghapusnya.
Jika Anda merasa nyaman dengan API, buat loop melalui semua node Anda, ambil revisi menggunakan
node_revision_list()
dan hapus menggunakannode_revision_delete()
.Sebagai upaya terakhir dan jika Anda suka mengotak-atik DB ( seperti saya lakukan ), Anda dapat menghapus baris
field_revision_*
dannode_revision
tabel revisi . Coba ini:PERINGATAN: tidak diuji sama sekali!
Anda dapat menemukan daftar lengkap tabel revisi Anda di
information_schema
database:sumber
WHERE node.vid = node_revision.vid
. Kesalahan apa adanya. Mungkin menentukan tabel pada kueri field_revision_body juga?Dalam situasi yang sama saya menggunakan kode di bawah ini:
sumber
Saya membuat ini untuk orang-orang VBO (menjalankan PHP sewenang-wenang), itu akan menghapus semua revisi (kecuali saat ini). Ini bergantung pada urutan penyortiran
node_revision_list()
, jadi buat cadangan DB & uji untuk hasil yang diinginkan sebelum digunakan pada data langsung .sumber
Modul Hapus Node Revisi sekarang memiliki rilis yang stabil.
sumber