Різниця між InstallSchema та InstallData


11

Хочу детально знати різницю між InstallSchema та InstallData.

Мені також потрібно знати, коли можна використовувати InstallSchema.phpі InstallData.php?


Повідомте мене, якщо у вас все ще виникають проблеми, інакше прийміть відповідь, щоб інший користувач отримав допомогу
Manthan Dave

Відповіді:


19

Спочатку обидва способи InstallSchema та InstallData викликаються при встановленні будь-якого нового модуля

Сценарії налаштування схем змінюють схему бази даних, вони створюють або змінюють потрібні таблиці баз даних. Якщо модуль встановлюється, виконується Setup \ InstallSchema :: install ().

Це означає, що він створює нову таблицю та її поля зі своєю структурою.

Сценарії настройки InstallData містять записи, які модуль потрібно вставити в базу даних. Атрибути, які постачаються за допомогою Magento за замовчуванням, сторінки Cms, різні групи за замовчуванням та ролі - все це приклади налаштування даних.

Налаштування даних виконується після установки схеми, вони функціонують аналогічно.

Отже, підійдіть до висновку, головна відмінність обох полягає в тому, що InstallSchema використовується для створення таблиці та її структури. У той час як InstallData використовується для вставки / додавання даних у таблицю.


Значить, використання InstallData для атрибута надбудови для Customer, Qoute, Order, Catalog, Product, Category.
Кетан Борада

Добре ви частково виправте, InstallData використовується для InsertData атрибута (значення атрибута) Скажімо, ви створили таблицю під назвою "Слайдер" програмою installSchema Тепер вам потрібно вставити кожен слайд Дані, тоді вам потрібно використовувати файл InstallData та визначити дані кожного слайда . Мати сенс ?
Мантан Дейв

8

Є наступні відмінності,

InstallSchema

Метою InstallSchema.php є створення нової таблиці / атрибута / полів у базі даних

InstallData

Мета InstallData.php - вставити дані / значення в базу даних.


6

Magento2 використовує чотири типи файлів для початкових операцій, пов’язаних із базою даних, які виконуються просто з монтажем модуля (ці файли запускаються лише один раз із часу їх існування). Ці файли такі

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

Усі ці файли представлені Magento_root/{app/Vendor}/{Vendor_Name}/{Module_Name}/Setupпростором імені вашого модуля magento. Тут я описав усі файли з їх використанням.

InstallSchema.php

Цей файл виконується спочатку відразу після реєстрації ваших модулів (Значить відразу після того, як ваш модуль та записи його версії будуть внесені до таблиці -> setup_module). Цей файл використовується для створення таблиць з атрибутом їх стовпців у вашій базі даних, які згодом використовуються новим встановленим модулем.

InstallData.php

Цей файл виконується після InstallSchema.php. Він використовується для додавання даних до новоствореної таблиці або будь-якої існуючої таблиці.

UpgradeSchema.php

Цей файл постачається з модулем і запускається лише тоді, якщо у вас вже встановлена ​​попередня версія цих модулів у вашому магенто (означає, що в його таблицю записано попередню версію -> setup_module). Він використовується для маніпулювання таблицею, пов'язаною з модулем (означає, що використовується для зміни схеми таблиці, атрибута стовпців та додавання нового стовпця до цієї таблиці).

UpgradeData.php

Цей файл працює після UpgradeSchema.php. Він має таку ж концепцію, що і в InstallData.phpньому, але, використовуючи цей файл, ви можете змінювати / змінювати вміст бази даних без використання файлів моделі. Ви також можете скористатися цим файлом, щоб додати новий вміст до бази даних, як і ми InstallData.php. Але такий же, як UpgradeSchema.phpвін, також працює лише тоді, якщо у вас буде встановлена ​​попередня версія цих модулів у вашому магенто.

Як я вже говорив, запуск цих файлів запускається лише один раз, тому основне використання цих файлів полягає в підготовці таблиць і даних для модуля, який модуль використовує протягом свого існування.

Примітка: Magento використовує ці файли для створення таблиць, які використовуються у функціоналах Magentos, і для додавання вмісту, наприклад cms_contents, customer_groups & attributes, Products_Types & attributes, Групи оподаткування тощо.


4

Існує основна різниця між 2 є

InstallSchema запуститься, коли модуль встановлений для настройки структури бази даних

Хоча InstallDataбуде запускатися, коли модуль встановлений для ініціації даних для таблиці баз даних

Очікуйте це, очистіть ваш запит.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.