Différence entre InstallSchema et InstallData

11

Je veux connaître la différence entre InstallSchema et InstallData en détail.

J'ai aussi besoin de savoir quand puis-je utiliser InstallSchema.phpet InstallData.php?

Ketan Borada
la source
Faites-moi savoir si vous avez encore un problème, sinon acceptez la réponse pour que les autres utilisateurs soient aidés
Manthan Dave

Réponses:

18

Tout d'abord, les deux méthodes InstallSchema et InstallData sont appelées lorsque vous installez un nouveau module

Les scripts de configuration de schéma modifient le schéma de la base de données, ils créent ou modifient les tables de base de données nécessaires. Si le module est en cours d'installation, Setup \ InstallSchema :: install () est exécuté.

Cela signifie qu'il crée une nouvelle table et ses champs avec sa structure.

Les scripts de configuration InstallData contiennent des entrées que le module doit insérer dans la base de données. Les attributs fournis avec Magento par défaut, les pages Cms, divers groupes et rôles par défaut, sont tous des exemples de configuration des données.

La configuration des données est exécutée après la configuration du schéma, elles fonctionnent de manière similaire.

Alors venez à la conclusion, la principale différence entre les deux est que InstallSchema est utilisé pour créer la table et sa structure. Alors que InstallData est utilisé pour insérer / ajouter des données dans la table.

Manthan Dave
la source
Les moyens, l' utilisation InstallData pour ajouter attribut Customer, Qoute, Order, Catalog, Product, Category.
Ketan Borada
Eh bien, vous corrigez partiellement, InstallData est utilisé pour insérer des données d'attribut (valeur de l'attribut) Disons que vous avez créé une table appelée "Slider" par installSchema Maintenant, vous devez insérer chaque données de diapositive, puis vous devez utiliser le fichier InstallData et définir les données de chaque diapositive . Ça a du sens?
Manthan Dave
8

Il y a la différence suivante,

InstallSchema

Le but de InstallSchema.php est de créer une nouvelle table / attribut / champs dans la base de données

InstallData

Le but du fichier InstallData.php est d'insérer des données / valeurs dans la base de données.

Abhishek Tripathi
la source
6

Magento2 utilise quatre types de fichiers pour les opérations initiales liées à la base de données qui sont exécutées uniquement avec le processus d'installation du module (ces fichiers ne s'exécutent qu'une seule fois pendant leur existence). Ces fichiers sont les suivants

  1. InstallSchema.php
  2. InstallData.php
  3. UpgradeSchema.php
  4. UpgradeData.php

Tous ces fichiers sont présents dans l' Magento_root/{app/Vendor}/{Vendor_Name}/{Module_Name}/Setupespace de nom de votre module magento. Ici, j'ai décrit tous les fichiers avec leur utilisation.

InstallSchema.php

Ce fichier est exécuté en premier juste après l'enregistrement de vos modules (signifie juste après que votre module et ses entrées de version sont entrées dans le tableau -> setup_module). Ce fichier est utilisé pour créer des tables avec leur attribut de colonnes dans votre base de données qui seront ensuite utilisées par le nouveau module installé.

InstallData.php

Ce fichier est exécuté après InstallSchema.php. Il est utilisé pour ajouter des données à la table nouvellement créée ou à toute table existante.

UpgradeSchema.php

Ce fichier est livré avec le module et ne s'exécute que si vous avez déjà installé la version précédente de ces modules dans votre magento (signifie qu'il a l'entrée de sa version précédente dans le tableau -> setup_module). Il est utilisé pour manipuler la table liée au module (signifie qu'il est utilisé pour modifier le schéma de la table signifie l'attribut colonnes et pour ajouter une nouvelle colonne dans cette table).

UpgradeData.php

Ce fichier s'exécute après UpgradeSchema.php. Il a le même concept que celui InstallData.phputilisé mais en utilisant ce fichier, vous pouvez changer / altérer le contenu de la base de données sans utiliser de fichiers de modèle. Vous pouvez également utiliser ce fichier pour ajouter du nouveau contenu à la base de données InstallData.php. Mais de la même manière, UpgradeSchema.phpil ne fonctionnera également que si vous avez installé la version précédente de ces modules dans votre magento.

Comme je l'ai dit en démarrant ces fichiers ne s'exécute qu'une seule fois, donc l'utilisation de base de ces fichiers est de préparer les tables et les données pour le module qui a été utilisé par le module tout au long de son existence.

Remarque: Magento utilise ces fichiers pour créer des tableaux qui sont utilisés dans les fonctionnalités de Magentos et pour ajouter le contenu comme cms_contents, customer_groups & attributes, Products_Types & attributes, Taxation groups etc.

Abhishek Tripathi
la source
4

Il y a une différence fondamentale entre 2

InstallSchema s'exécutera lorsque le module sera installé pour configurer la structure de la base de données

While InstallDatas'exécute lorsque le module est installé pour initialiser les données de la table de base de données

Hoope ceci efface votre requête.

Kul
la source