2012-01-05 13 views
11

Wystąpił problem z niestandardowym modułem Magento, który utworzyłem.Niestandardowy model Magento nie zezwoli na zmiany w tabeli DB

W skrócie, stworzyłem prosty moduł do przesyłania plików przez klientów na front-end. Stworzyłem nową tabelę z pewnymi ogólnymi polami, takimi jak "project_id", "title" itd. Wszystko jest w porządku ... Mogę ustawić zmienne modelu i zapisać je w mojej tabeli za pomocą modelu-> save() ;.

Właśnie teraz potrzebuję dodać nowe pole lub zmienić nazwę starego pola. Z tego powodu, że nie mogę zrozumieć nowych pól i zmienionych pól, nie zostaną one zapisane za pomocą modelu-> save(); mimo że widzę z mojego debuggera, że ​​zmienione i zmienione zmienne w moim modelu są ustawione poprawnie. Mam nadzieję, że ktoś już do tego dołączył i może rzucić nieco światła na ten niezwykle frustrujący problem. Mój projekt jest zawieszony do czasu przybycia pomocy!

Odpowiedz

20

Wyczyść pamięć podręczną. Klasy Zend, których Magento używa do odczytu kolumn bazy danych, przechowują te informacje w pamięci podręcznej (tak, że nie jest konieczne wykonywanie DESCRIBE dla każdego modelu ładowania/zapisywania). Wyczyść pamięć podręczną, a Magento powinno zobaczyć nowe kolumny, a wartości zaczną się utrzymywać w bazie danych.

+0

Wszystkie bufory zostały wyłączone od rozpoczęcia projektu, ale to działa! To ostatnia rzecz, którą chciałbym sprawdzić, ponieważ pozostali wyłączeni podczas produkcji. Dlaczego tak się stało? –

+1

Wszystkie ** pamięci podręczne Magento ** zostały wyłączone. Nigdy nie badałem zbyt głęboko, zakładam, że jest to rodzaj buforowania zachodzącego głęboko w Zend Framework, prawdopodobnie za pośrednictwem obiektu rejestru. Magento caches włącza/wyłącza dla kluczy ustawionych przez klasę buforowania Magento. Ponieważ klasy Zend DB robią własne buforowanie, jest to pomijane. Chalk to do innej instancji Magento to nie Zend. –

+0

Ta odpowiedź działa dla mnie. Dzięki za pomoc! Jestem pewien, że będzie o wiele więcej zapytań ... –

3

Wyłączenie pamięci podręcznej w panelu administratora Magento wydaje się niewystarczające. Należy ręcznie usunąć zawartość/var/cache.

0

Run rm -rf var/cache/* z konsoli, jak nie będziecie w stanie dotrzeć do ekranu Zarządzanie administratora Cache

Powiązane problemy