Je suis actuellement en train de faire beaucoup de tests sur Magento pour pouvoir me familiariser avec cela. Malheureusement, la base de données est extrêmement encombrée de mes tests. Je souhaite nettoyer la base de données pour pouvoir recommencer. Cela signifie faire ce qui suit:
- Effacement de tous les produits
- Effacement de tous les attributs
- Effacement de tous les ensembles d'attributs
- Effacement de toutes les catégories
- Effacement de toutes les commandes, expéditions, transactions, etc.
J'ai trouvé un article sur les forums Magento pour nettoyer les produits, qui correspond au code SQL suivant:
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;
J'aurais besoin de la même chose pour les autres mentionnés. Malheureusement, je ne sais pas quelles tables contiennent toutes les données, sinon je l'aurais fait moi-même. Je ne veux pas non plus effacer les mauvaises tables par accident. J'espère que vous pouvez m'aider!
magento-1.7
database
Surgelés
la source
la source
core_config_data
) et recommencez-vous?Réponses:
Pour les commandes
Vous pouvez utiliser cette fonction pour supprimer des ensembles d'attributs.
Et chercher cette table pour supprimer l'attribut
Vérifiez la
eav_attribute
colonneis_user_defined
afin que vous puissiez avoir une idée.la source
Vous pouvez simplement vider toute la base de données et Magento exécutera à nouveau tous ses scripts d'installation / de mise à niveau / de données lors du prochain chargement. Ceci "réinitialisera l'usine" Magento et détruira toutes vos modifications.
Une bonne habitude consiste à créer un module contenant tous les paramètres de base de votre magasin dans des scripts d'installation / de mise à niveau / de données. Cela présente l'avantage que ces paramètres sont stockés dans le contrôle de version et que tous les sites Web que vous avez pour le magasin (production, stockage intermédiaire, tests d'acceptation des utilisateurs, etc.) seront tenus à jour.
Si plusieurs personnes travaillent sur un site, nous créons même un nouveau module pour chaque groupe de paramètres afin que les versions n'entrent pas en conflit lorsque nous fusionnons du code.
Dans votre cas, je créerais un module qui configure tous les paramètres que vous souhaitez conserver. Si vous nettoyez la base de données, Magento sera complètement propre ET avec les paramètres souhaités!
Vous pouvez consulter les scripts d'installation / de mise à niveau du noyau de Magento pour voir comment Magento installe ses données / paramètres initiaux.
la source
Si vous n'avez besoin de rien, videz simplement la base de données et effectuez une nouvelle installation.
Courir en masse tronqué m'inquiète toujours des éventuels effets durables des relations brisées.
Purge rapide de la DB
En utilisant ce script ,
Cela videra et supprimera complètement chaque table de la base de données. Ne l'utilisez pas si vous devez conserver quelque chose .
la source
Avant de lancer un nouveau site Web de commerce électronique Magento, en phase de développement, vous devrez toujours effectuer des tests, ce qui nécessitera la création de commandes de tests et de clients pour garantir le bon fonctionnement de tous les processus, comme vous le souhaitez.
Cela peut souvent finir par laisser une charge de données de test dans le système que vous ne manquerez plus une fois le site lancé. Magento étant réputé pour insérer des données dans plusieurs tables de base de données, nous avons fourni le script SQL ci-dessous qui supprimera proprement toutes ces données de votre base de données Magento (et réinitialisera les compteurs d'incrément pour les ventes, les factures, les clients et les expéditions). Cela a été testé et confirmé sur les versions 1.4.0.1 à 1.9.0.1 de Magento.
la source
Si vous travaillez avec EE, vous devez également tronquer les tables de réécriture d'URL d'entreprise, car elles ne sont soumises à aucune contrainte de clé étrangère et lors de l'importation de données (sans définir explicitement d'URL), les URL des anciens produits seront connectées à votre nouveau produit importé. des produits.
la source
Une chose que personne n’a mentionnée, c’est l’effacement des tables d’impôts. Si vous ne le faites pas, vous obtiendrez des entrées d'identifiant de commande répétées dans la table de taxe (lorsque vous passez des commandes à l'identifiant de commande de départ, le même identifiant s'affiche plusieurs fois). Les éléments multiples apparaîtront sur les factures / mémos en tant que plusieurs éléments de ligne, tant du côté administrateur que du côté client. Après avoir testé / effacé en utilisant les méthodes décrites dans les publications ci-dessus (et en n’effaçant pas les tables de taxes), au bout d’un moment, j’ai eu 10 postes d’impôt différents à afficher pour une seule commande.
Remarque - la taxe était / est toujours facturée correctement, mais sur les mémos et les factures, elle montrait tous les articles. Très déroutant si un client devait voir cela.
Donc, pour ajouter à ce qui précède:
Et pour faire bonne mesure:
la source
Vous devriez avoir une base de données séparée pour les tests. Voir le cadre de test de magento. Toutes les idées pour effacer la base de données après les tests sont fausses.
la source
J'ai configuré un référentiel pour la maintenance de scripts SQL simples à exécuter avant le lancement d'un nouveau site Magento. Jusqu'à présent, ils peuvent aider:
https://github.com/ccondrup/mage-reset
Aidez-nous à les améliorer!
la source
ccdata_empty_testdata
|| C'est peut-être moi, mais sinon super script !!!Juste mes 2 cents ...
Plutôt que de déterminer ce qu’il faut supprimer et de ne réaliser que ce que j’ai manqué plus tard, j’exécute quelques ordinateurs virtuels et j’utilise des instantanés à différentes étapes. De plus, j’ai deux sites distincts, l’un en direct et l’autre.
Il est alors facile d’avoir un script pour "restaurer" le test en direct quand j’en ai besoin. De plus, si le client a accès au système de test, il peut également jouer avant de faire quoi que ce soit en direct - nul besoin de restaurer à partir d'une sauvegarde, de perdre des commandes ou de modifier le processus ( bien que cela teste votre stratégie de sauvegarde). . )
Je pense que ce processus est bien meilleur et "plus sûr" que l'exécution d'un script personnalisé (obsolète?) Pour supprimer (trop?) Des éléments ...
(En outre, n'hésitez pas à voter ceci car je ne peux pas commenter pour le moment!)
la source
MYSQL Supprimez et créez la base de données, puis ajoutez les privilèges utilisateur et l'utilisateur administrateur magento.
Ajouter un administrateur Magento:
la source
Basé sur une réponse de Mufaddal, j'ai préparé une requête pour effacer l'ordre et les données associées dans Magento 2.2.
la source
Vous avez simplement obtenu votre base de données phpMyadmin, puis ouvrez la table
sales_flat_order
, puis supprimez simplement les données de ce tableau et vos ordres de test seront effacés. Pas besoin de code, de commandes ou d'extensions. cool.la source
C'est une réponse tardive, mais cela pourrait être utile.
Je développe un site Web de commerce électronique basé sur Magento 1.7 et j'ai tendance à utiliser le TDD.
Je pense que nous ne devrions pas déranger en nettoyant manuellement la base de données pendant que nous pouvons utiliser Magento
beginTransaction
etrollback
méthodes.Voici un exemple
Cette réponse est inspirée par cette réponse de Magento , visitez-la pour en savoir plus.
la source