Mevcut bir Magento sitesinde yükseltme yapıyorum. Yaklaşık 10 dakika sonra, Magento bir istisna bildirir ve I/rapor/var hata raporu dosyasını kontrol ederken aşağıdaki hata iletisini ve yığın dökümü bkz:Magento 1.4.0 - 1.6.2.0 yükseltmesi üzerinde benzersiz kısıtlama ihlali
a:5:{i:0;s:223:"Error in file: "/var/www/vhosts/mymagesite/app/code/core/Mage/Customer/sql/customer_setup/mysql4-upgrade-1.5.9.9-1.6.0.0.php" - SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '0-8' for key 'UNQ_BY_CUSTOMER'";i:1;s:952:"#0 /var/www/vhosts/mymagesite/app/code/core/Mage/Core/Model/Resource/Setup.php(645): Mage::exception('Mage_Core', 'Error in file: ...')
#1 /var/www/vhosts/mymagesite/app/code/core/Mage/Core/Model/Resource/Setup.php(437): Mage_Core_Model_Resource_Setup->_modifyResourceDb('upgrade', '1.4.0.0.7', '1.6.1.0')
#2 /var/www/vhosts/mymagesite/app/code/core/Mage/Core/Model/Resource/Setup.php(320): Mage_Core_Model_Resource_Setup->_upgradeResourceDb('1.4.0.0.7', '1.6.1.0')
#3 /var/www/vhosts/mymagesite/app/code/core/Mage/Core/Model/Resource/Setup.php(235): Mage_Core_Model_Resource_Setup->applyUpdates()
#4 /var/www/vhosts/mymagesite/app/code/core/Mage/Core/Model/App.php(412): Mage_Core_Model_Resource_Setup::applyAllUpdates()
#5 /var/www/vhosts/mymagesite/app/code/core/Mage/Core/Model/App.php(338): Mage_Core_Model_App->_initModules()
#6 /var/www/vhosts/mymagesite/app/Mage.php(640): Mage_Core_Model_App->run(Array)
#7 /var/www/vhosts/mymagesite/index.php(80): Mage::run('default', 'store')
#8 {main}";s:3:"url";s:16:"/index.php/admin";s:11:"script_name";s:10:"/index.php";s:4:"skin";s:7:"default";}
internette başka bir yerde genel tavsiyem değiştirmektir app/etc/config.xml
yılında <initStatements>
okumak için:
<initStatements>SET NAMES utf8; SET FOREIGN_KEY_CHECKS=0; SET UNIQUE_CHECKS=0;</initStatements>
Ancak, veritabanları bütünlük kısıtlaması sistemini devre dışı bırakarak son derece zor desteklemek ve daha sonra sorunları gidermek için bir garanti yoldur. Yükseltme komut dosyasının bir hatayla çökmemesini sağlayan bir saldırıdır, sorunu herhangi bir şekilde veya biçimde düzeltmez.
StackOverflow topluluğu, daha iyi bir çözüm veya MySQL'de bütünlük denetiminin devre dışı bırakılmasının neden iyi bir fikir olduğu konusunda iyi bir açıklama sağlayabilir mi?
Tüm uzantılar, yükseltme süresinde varsayılan temaya döndürüldü mü? –
Uzantıları devre dışı bırakmadım veya varsayılan temaya geri dönmedim. Bu sorunu nasıl çözeceğinden emin değilim. Üçüncü taraf uzantıları bu hatayı verdiyse, "hasar" veritabanına önceden yapılmış ve bunları devre dışı bırakma işlemi geri almayacaktır. –
Hey Jim :) Onları devre dışı bırakmanızın sebebi, uzantıların genellikle işe yaramasıdır. Magento yolu bir şey değiştirmeniz gerektiğinde uzatmak ve yeniden yazmaktır ve uzantılar magento'nun bazı sürümlerini yeniden yazmaktadır ve en son sürümlere güncellememektedir.Yani temelde hata bir şey yeniden yazıyor ve magento bu bölümü güncelledi = çakışma –