Saya sadar, Anda dapat menggunakan skrip pengaturan untuk modul Anda sendiri dengan mendeklarasikannya di file etc / config.xml modul Anda di dalam <global>
ruang seperti ini:
<resources>
<catalog_setup>
<setup>
<module>Mage_Catalog</module>
<class>Mage_Catalog_Model_Resource_Setup</class>
</setup>
</catalog_setup>
</resources>
Beberapa modul kemudian menggunakan file mysql4-install-0.0.1.php
sedangkan yang lain menggunakan install-0.0.1.php
. Jadi kapan saya menggunakan mysql4 di depan nama file dan kapan saya tidak menggunakannya?
Juga, apa yang bisa saya lakukan ketika skrip setup saya tidak berjalan untuk mencari tahu mengapa tidak?
magento-1
configuration
sql
installation
setup
mpaepper
sumber
sumber
Jawaban:
Dari Magento 1.6 dan yang lebih tinggi, Anda tidak perlu menggunakan mysql4 lagi karena menambahkan dukungan multi-RDBMS.
Untuk mengetahui mengapa itu tidak berjalan, Anda dapat memeriksa exception.log atau system.log, mungkin Magento tidak dapat menemukan kelas pengaturan Anda. Membuat skrip instalasi cukup mudah.
Periksa juga panduan Alan Storm: http://alanstorm.com/magento_setup_resources
sumber
Sebagai @erfan saif, magento mendapat dukungan multi-rdbms sejak 1.6. Tetapi di dunia nyata, saya hanya tahu backend mysql.
Penting untuk dipahami, bahwa magento dapat memiliki skrip instalasi / peningkatan / data yang berbeda untuk backend yang berbeda. Jika Anda menginginkan Tipe-Indeks khusus yang didukung oleh mysql tetapi tidak oleh standar-SQL Anda dapat mengimplementasikan skrip mysql4-install-1.0.0.php. Jika skrip Anda generik, gunakan install-1.0.0.php
Jika Anda melihat Mage_Core_Model_Resource_Setup saya dapat menemukan dua hal yang menarik:
app / code / core / Mage / Core / Model / Resource / Setup.php: 488
Hati-hati, jika Anda memberi nama skrip Anda, skrip
.sql
akan dipanggil langsung ke dalam basis data:Saya lebih suka die ('sadf') di awal file install / upgrade saya, karena saya bisa menjalankannya berkali-kali jika dipanggil, jadi saya bisa mengecek, apakah semua variabel yang saya atur sudah benar, sebelum ada yang berubah di data. Jika saya melihat 'sadf' di layar, saya tahu, skrip sedang berjalan.
Saya banyak memuat (bukan sadf), sekarang saatnya untuk debug, dua kesalahan standar saya adalah:
sql/
lupa, misalsql/install-1.0.0.php
alih-alihsql/my_module_setup/install-1.0.0.php
Dan karena saya pikir cocok di sini, hati-hati dengan nama variabel Anda: http://blog.fabian-blechschmidt.de/articles/file-kills-setup-script.html
UPDATE @ rouven-rieker menambahkan melalui twitter bahwa data- dan hilang mysql4- ditambahkan di magento 1.6. Jika Anda perlu kompatibilitas mundur hati-hati!
sumber
Jika skrip Anda tidak berjalan, Anda juga harus memeriksa apakah versi modul Anda cocok dengan versi skrip pengaturan Anda.
sumber
Jika skrip Anda tidak berjalan, setel ulang nomor versi di core_resource dan siram cache. Magento versi cache sebelumnya tampaknya dan tidak bisa menjalankan skrip pengaturan ketika semua cache diaktifkan. Karena kita semua bekerja dengan cache dinonaktifkan, kita mungkin tidak melihat ini, tetapi menginstal di situs Live melalui upload tidak akan berfungsi jika cache diaktifkan.
sumber