Obecnie przeprowadzam wiele testów w Magento, aby się z tym zapoznać. Niestety baza danych jest bardzo zaśmiecona moimi testami. Chcę wyczyścić bazę danych, aby móc zacząć od nowa. Oznacza to wykonanie następujących czynności:
- Usuwanie wszystkich produktów
- Usuwanie wszystkich atrybutów
- Czyszczenie wszystkich zestawów atrybutów
- Czyszczenie wszystkich kategorii
- Czyszczenie wszystkich zamówień, przesyłek, transakcji itp.
Znalazłem post na forach Magento do usuwania produktów, który jest następujący SQL:
SET FOREIGN_KEY_CHECKS = 0;
TRUNCATE TABLE `catalog_product_bundle_option`;
TRUNCATE TABLE `catalog_product_bundle_option_value`;
TRUNCATE TABLE `catalog_product_bundle_selection`;
TRUNCATE TABLE `catalog_product_entity_datetime`;
TRUNCATE TABLE `catalog_product_entity_decimal`;
TRUNCATE TABLE `catalog_product_entity_gallery`;
TRUNCATE TABLE `catalog_product_entity_int`;
TRUNCATE TABLE `catalog_product_entity_media_gallery`;
TRUNCATE TABLE `catalog_product_entity_media_gallery_value`;
TRUNCATE TABLE `catalog_product_entity_text`;
TRUNCATE TABLE `catalog_product_entity_tier_price`;
TRUNCATE TABLE `catalog_product_entity_varchar`;
TRUNCATE TABLE `catalog_product_flat_1`;
TRUNCATE TABLE `catalog_product_link`;
TRUNCATE TABLE `catalog_product_link_attribute`;
TRUNCATE TABLE `catalog_product_link_attribute_decimal`;
TRUNCATE TABLE `catalog_product_link_attribute_int`;
TRUNCATE TABLE `catalog_product_link_attribute_varchar`;
TRUNCATE TABLE `catalog_product_link_type`;
TRUNCATE TABLE `catalog_product_option`;
TRUNCATE TABLE `catalog_product_option_price`;
TRUNCATE TABLE `catalog_product_option_title`;
TRUNCATE TABLE `catalog_product_option_type_price`;
TRUNCATE TABLE `catalog_product_option_type_title`;
TRUNCATE TABLE `catalog_product_option_type_value`;
TRUNCATE TABLE `catalog_product_super_attribute_label`;
TRUNCATE TABLE `catalog_product_super_attribute_pricing`;
TRUNCATE TABLE `catalog_product_super_attribute`;
TRUNCATE TABLE `catalog_product_super_link`;
TRUNCATE TABLE `catalog_product_enabled_index`;
TRUNCATE TABLE `catalog_product_website`;
TRUNCATE TABLE `catalog_product_relation`;
TRUNCATE TABLE `catalog_category_product_index`;
TRUNCATE TABLE `catalog_category_product`;
TRUNCATE TABLE `cataloginventory_stock_item`;
TRUNCATE TABLE `cataloginventory_stock_status`;
TRUNCATE TABLE `cataloginventory_stock_status_idx`;
TRUNCATE TABLE `cataloginventory_stock`;
TRUNCATE TABLE `core_url_rewrite`;
INSERT INTO `catalog_product_link_type`(`link_type_id`,`code`) VALUES (1,'relation'),(2,'bundle'),(3,'super'),(4,'up_sell'),(5,'cross_sell');
INSERT INTO `catalog_product_link_attribute`(`product_link_attribute_id`,`link_type_id`,`product_link_attribute_code`,`data_type`) VALUES (1,2,'qty','decimal'),(2,1,'position','int'),(3,4,'position','int'),(4,5,'position','int'),(6,1,'qty','decimal'),(7,3,'position','int'),(8,3,'qty','decimal');
INSERT INTO `cataloginventory_stock`(`stock_id`,`stock_name`) VALUES (1,'Default');
TRUNCATE TABLE `catalog_product_entity`;
SET FOREIGN_KEY_CHECKS = 1;
Potrzebowałbym tego samego dla pozostałych wymienionych. Niestety nie wiem, które tabele przechowują różne dane, w przeciwnym razie zrobiłbym to sam. Nie chcę też przypadkowo wyczyścić niewłaściwych tabel. Mam nadzieję że możesz mi pomóc!
magento-1.7
database
Głęboko zamrożone
źródło
źródło
core_config_data
) i po prostu zacząć od nowa?Odpowiedzi:
Dla zamówień
Możesz użyć tej funkcji do usuwania zestawów atrybutów.
I poszukaj tej tabeli, aby usunąć atrybut
Sprawdź
eav_attribute
kolumnę,is_user_defined
aby uzyskać jakiś pomysł.źródło
Możesz po prostu opróżnić całą bazę danych, a Magento ponownie uruchomi wszystkie swoje skrypty instalacji / aktualizacji / danych przy następnym ładowaniu strony. Spowoduje to „przywrócenie ustawień fabrycznych” Magento i zniszczy wszystkie twoje zmiany.
Dobrym nawykiem jest tworzenie modułu zawierającego wszystkie podstawowe ustawienia sklepu w skryptach instalacyjnych / aktualizacyjnych / danych. Ma to tę zaletę, że ustawienia te są przechowywane w kontroli wersji, a wszystkie różne witryny internetowe dla sklepu (produkcja, inscenizacja, testy akceptacji użytkownika itp.) Będą aktualizowane.
Jeśli w witrynie pracuje wiele osób, tworzymy nawet nowy moduł dla każdej grupy ustawień, aby wersje nie kolidowały podczas scalania kodu.
W twoim przypadku stworzyłbym moduł, który konfiguruje wszystkie ustawienia, które chcesz zachować. Jeśli wyczyścisz bazę danych, Magento będzie całkowicie czysty ORAZ w tym odpowiednie ustawienia!
Możesz rzucić okiem na skrypty instalacyjne / aktualizacyjne podstawowego Magento, aby zobaczyć, jak Magento instaluje swoje początkowe dane / ustawienia.
źródło
Jeśli w ogóle nic nie potrzebujesz - po prostu opróżnij całą bazę danych i wykonaj czystą ponowną instalację.
Uruchamianie obcinania masy zawsze martwi mnie potencjalnymi trwałymi skutkami zerwania kluczowych relacji.
Szybkie czyszczenie DB
Korzystanie z tego skryptu ,
Spowoduje to całkowite opróżnienie i usunięcie każdej tabeli w bazie danych. Nie używaj go, jeśli chcesz coś zachować .
źródło
Przed uruchomieniem nowej strony Magento eCommerce, na etapie programowania, zawsze będziesz musiał przeprowadzić testy, a to będzie wymagało utworzenia zamówień testowych i klientów, aby upewnić się, że wszystkie procesy działają poprawnie i zgodnie z oczekiwaniami.
Często może to spowodować pozostawienie w systemie danych testowych, których nie będziesz potrzebować po uruchomieniu witryny. Magento jest znane z wstawiania danych do wielu tabel bazy danych, dlatego udostępniliśmy poniższy skrypt SQL, który wyczyści wszystkie te dane z bazy danych Magento (i zresetuje liczniki przyrostu sprzedaży, faktur, klientów i wysyłki). Zostało to przetestowane i potwierdzone podczas pracy z wersjami Magento od 1.4.0.1 do 1.9.0.1.
źródło
Jeśli pracujesz z EE, powinieneś także obciąć tabele przepisywania URL-a dla przedsiębiorstw, ponieważ nie mają one ograniczeń klucza obcego i podczas importowania danych (ale nie jawnie ustawiających adresy URL) adresy URL starych produktów zostaną połączone z nowo zaimportowanymi produkty.
źródło
Jedna rzecz, o której nikt nie wspominał, to czyszczenie tabel podatkowych. Jeśli tego nie zrobisz, otrzymasz powtarzające się wpisy identyfikatora zamówienia w tabeli podatków (po ponownym złożeniu zamówienia przy początkowym identyfikatorze zamówienia pojawi się ten sam identyfikator wielokrotnie). Wiele pozycji pojawi się na fakturach / notatkach jako wiele pozycji, zarówno po stronie administratora, jak i klienta. Po przetestowaniu / rozliczeniu metodami opisanymi w powyższych postach (i nie wyczyszczeniu tabel podatkowych) po pewnym czasie miałem 10 różnych pozycji podatkowych wyświetlanych dla pojedynczego zamówienia.
Uwaga - podatek był / jest nadal naliczany poprawnie, ale na notatkach i fakturach pokazywał wszystkie elementy. Bardzo mylące, jeśli klient to widział.
Aby dodać do powyższego:
I na wszelki wypadek:
źródło
Powinieneś mieć oddzielną bazę danych dla testów. Zobacz środowisko testowe magento. Wszystkie pomysły na usunięcie bazy danych po testach są błędne.
źródło
Konfiguruję repozytorium do obsługi prostych skryptów SQL do uruchomienia przed uruchomieniem nowej strony Magento. Jak dotąd mogą pomóc:
https://github.com/ccondrup/mage-reset
Pomóż je ulepszyć!
źródło
ccdata_empty_testdata
|| To może być ja, ale poza tym świetny scenariusz !!!Tylko moje 2 centy ...
Zamiast zastanawiać się, co usunąć, i zdając sobie sprawę z tego, co później przegapiłem, uruchamiam kilka maszyn wirtualnych i używam migawek na różnych etapach, a także mam dwie osobne witryny - jedną na żywo i jedną testową.
Łatwo jest wtedy mieć skrypt do „przywracania” testu z życia, kiedy go potrzebuję. Ponadto, jeśli klient ma dostęp do systemu testowego, może się nim pobawić przed zrobieniem czegokolwiek na żywo - nie trzeba przywracać danych z kopii zapasowej i tracić zamówień ani innych zmian w tym procesie ( choć testuje ona strategię tworzenia kopii zapasowych. . )
Myślę, że jest to znacznie lepszy i „bezpieczniejszy” proces niż uruchamianie niestandardowego (nieaktualnego?) Skryptu w celu usunięcia (za dużo?) Rzeczy ...
(Prosimy również o głosowanie, ponieważ nie mogę jeszcze komentować!)
źródło
MYSQL Upuść i utwórz bazę danych, a następnie dodaj uprawnienia użytkownika i administratora administratora magento.
Dodaj administratora Magento:
źródło
Na podstawie odpowiedzi Mufaddal przygotowałem zapytanie w celu wyczyszczenia zamówienia i powiązanych danych w Magento 2.2
źródło
Wystarczy pobrać bazę danych phpMyadmin, a następnie otworzyć tabelę,
sales_flat_order
a następnie po prostu usunąć dane z tej tabeli, a zamówienia testowe zostaną usunięte. Nie potrzebujesz żadnego kodu, poleceń ani rozszerzeń. chłodny.źródło
To późna odpowiedź, ale może być pomocna.
Zajmuję się tworzeniem strony internetowej e-commerce opartej na Magento 1.7 i mam tendencję do TDD.
Myślę, że nie powinniśmy zawracać sobie głowy ręcznym czyszczeniem bazy danych, podczas gdy możemy korzystać z Magento
beginTransaction
irollback
metod.Oto przykład
Ta odpowiedź jest inspirowana odpowiedzią Magento , odwiedź ją w celu dalszego czytania.
źródło