Rupanya, sekarang Magento 2 mendukung skrip uninstall yang memungkinkan modifikasi skema db ketika mencopot modul (horay !!).
Seperti yang dijelaskan di sini, ini hanya berfungsi untuk modul yang dipasang melalui komposer.
(Saya berharap ini akan bekerja di masa depan untuk semua modul, tapi itu masalah yang berbeda).
Katakanlah saya memiliki modul yang disebut Testing_Demo
.
Modul ini melakukan 3 hal yang ingin saya hapus ketika mencopotnya.
- menambahkan tabel yang disebut
testing_demo
. Jadi saya harus menjatuhkannya. - menambahkan atribut produk yang disebut
demo
. Jadi ini perlu dihapus - memiliki beberapa pengaturan
system->configuration
yang mungkin atau mungkin tidak disimpan dalam tabelcore_config_data
. Semua pengaturan ini memiliki jalurtesting_demo/...
. Jadi ini perlu dihapus juga.
Seperti apa bentuk skrip penghapusan modul saya?
module
magento2
install-script
composer
Marius
sumber
sumber
Jawaban:
Mencari basis kode untuk
UninstallInterface
memberi\Magento\Setup\Model\UninstallCollector
.Jika Anda mencari
UninstallCollector
maka, Anda akan menemukan yang digunakan di\Magento\Setup\Console\Command\ModuleUninstallCommand
. Sangat relevan:Disatukan, kita dapat menduga:
Uninstall
kelas di{module}\Setup\Uninstall.php
.Magento\Framework\Setup\UninstallInterface
.uninstall
metode yang mengandung logika yang diperlukan.Jadi, inilah kerangka Anda:
Hapus semua tabel, kolom, atau data menggunakan metode yang sesuai. Lihat
\Magento\Framework\DB\Adapter\AdapterInterface
, tersedia sebagai$setup->getConnection()
.sumber