2011-05-23 11 views
5

Po migracji serwerów pojawia się błąd za każdym razem, gdy próbuję zaktualizować informacje o klientach. Używam customer activation plugin, ale po wyłączeniu tego nadal otrzymuję ten sam błąd.Magento - "SQLSTATE [23000]: naruszenie integralności integralności .." po aktualizacji klienta

SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '7-127' for key 2 

Co jest nie tak?

Nawet po odinstalowaniu wtyczki pojawia się ten błąd podczas próby zapisania informacji o kliencie. To prowadzi mnie do przekonania, że ​​jest to większy problem z Magento i/lub serwerem, na którym się przełączam.

Sprawdziłem dziennik Magento i Dostaję Ten anons wielokrotnie:

ERR (3): User Notice: Sorry, your PCRE extension does not support UTF8 which is needed for the I18N core in ../httpdocs/store/lib/Zend/Locale/Format.php on line 769 

Czy to istotne?

+2

Niektóre kody w systemie Magento powodują uruchomienie SQL, który próbuje wstawić dane do kolumny bazy danych, która została zadeklarowana za pomocą unikalnego klucza. Możliwe przyczyny tego są legionem i jeśli chcesz uzyskać odpowiedź na ** tym forum, musisz trochę czasu na debugowanie. –

+0

Zaktualizowałem wszystko, co znalazłem w dzienniku Magento. –

+0

"Co się dzieje, gdy śledzisz uruchamiany SQL", zapytał pasywnie-agresywnie. –

Odpowiedz

9

Problem polega na tym, że po migracji bazy danych, mysql użytecznie ponownie uruchamia kolumny identyfikatorów, które są automatycznie zwiększane, a Magento ma niektóre zakodowane wartości, które zakładają, że identyfikatory zaczynają się od zera. Musisz wyłączyć foreign_key_checks podczas importowania danych.

+0

dziękuję! to był problem. –

+6

To jest martwy link. Byłoby miło mieć kopiuj-wklej tutaj dla potomności .... –

1

Twoja edycja próbuje ponownie utworzyć użytkownika, zamiast AKTUALIZOWAĆ istniejącego użytkownika. To błąd z wtyczką. Możesz zgłosić to autorowi lub poczekać, aż pojawi się aktualizacja.

+0

Po wyłączeniu tego pojawia się ten sam błąd. –

1

Jeśli próbujesz importować plik SQL, upewnij się, że "Wyłącz sprawdzanie klucza obcego". Do tego po prostu dodaj SET FOREIGN_KEY_CHECKS = 0; na początku pliku SQL. Dodaj także SET FOREIGN_KEY_CHECKS = 1; na końcu pliku.

Powiązane problemy