Разница между InstallSchema и InstallData

11

Я хочу узнать разницу между InstallSchema и InstallData в деталях.

Мне также нужно знать, когда я могу использовать InstallSchema.phpи InstallData.php?

Кетан Борада
источник
Дайте мне знать, если у вас все еще есть проблема, в противном случае примите ответ, чтобы другой пользователь получил помощь
Мантан Дейв

Ответы:

18

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

Сценарии настройки схемы изменяют схему базы данных, они создают или изменяют необходимые таблицы базы данных. Если модуль устанавливается, выполняется Setup \ InstallSchema :: install ().

Это означает, что он создает новую таблицу и ее поля со своей структурой.

Установочные сценарии InstallData содержат записи, которые необходимо вставить в базу данных. Атрибуты, которые поставляются с Magento по умолчанию, страницы Cms, различные группы и роли по умолчанию, являются примерами настройки данных.

Настройка данных выполняется после настройки схемы, они работают аналогичным образом.

Итак, приходим к выводу: главное различие между ними заключается в том, что InstallSchema используется для создания таблицы и ее структуры. Хотя InstallData используется для вставки / добавления данных в таблицу.

Мантан Дэйв
источник
Значит, использование InstallData для атрибута надстройки для Customer, Qoute, Order, Catalog, Product, Category.
Кетан Борада
Хорошо, вы частично исправили, InstallData используется для InsertData атрибута (значение атрибута). Допустим, вы создали таблицу с именем «Slider» от installSchema. Теперь вам нужно вставить каждый слайд Data, затем вам нужно использовать файл 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

Этот файл поставляется с модулем и запускается только тогда, если у вас уже установлены предыдущие версии этих модулей в вашем magento (означает, что он имеет запись своей предыдущей версии в таблице -> setup_module). Он используется для управления таблицей, связанной с модулем (означает, что он используется для изменения схемы таблицы, означает атрибут столбцов и добавляет новый столбец в эту таблицу).

UpgradeData.php

Этот файл запускается после UpgradeSchema.php. У него та же концепция, что и InstallData.phpу, но с помощью этого файла вы можете изменять / изменять содержимое базы данных без использования файлов моделей. Вы также можете использовать этот файл, чтобы добавить новый контент в базу данных так же, как мы InstallData.php. Но так же, как UpgradeSchema.phpон будет работать только тогда, если у вас установлены предыдущие версии этих модулей в вашем magento.

Как я уже сказал, при запуске эти файлы запускаются только один раз, поэтому основное использование этих файлов - это подготовка таблиц и данных для модуля, который использовался модулем в течение его существования.

Примечание: Magento использует эти файлы для создания таблиц, которые используются в функциональных возможностях Magentos и для добавления содержимого, такого как cms_contents, customer_groups & attribute, Products_Types & attribute, Taxation groups и т. Д.

Абхишек Трипати
источник
4

Есть принципиальная разница между 2

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

Хотя InstallDataбудет запускаться, когда модуль установлен для исходных данных для таблицы базы данных

Hoope это очистить ваш запрос.

Куль
источник