Quiero saber la diferencia entre InstallSchema e InstallData en detalles.
También necesito saber cuándo puedo usar InstallSchema.php
y InstallData.php
.
Quiero saber la diferencia entre InstallSchema e InstallData en detalles.
También necesito saber cuándo puedo usar InstallSchema.php
y InstallData.php
.
Respuestas:
Primero, se instalan ambos métodos InstallSchema e InstallData cuando se instala cualquier módulo nuevo
Los scripts de configuración del esquema cambian el esquema de la base de datos, crean o cambian las tablas de base de datos necesarias. Si el módulo se está instalando, se ejecuta Setup \ InstallSchema :: install ().
Significa que crea una nueva tabla y sus campos con su estructura.
Los scripts de instalación de InstallData contienen entradas que el módulo necesita insertar en la base de datos. Los atributos que vienen con Magento por defecto, las páginas Cms, varios grupos y roles predeterminados, son todos ejemplos de configuración de datos.
La configuración de datos se ejecuta después de la configuración del esquema, funcionan de manera similar.
Llegue a la conclusión, la principal diferencia entre ambos es que InstallSchema se usa para hacer la tabla y su estructura. Mientras que InstallData se usa para insertar / agregar datos en la tabla.
Customer
, Qoute
, Order
, Catalog
, Product
, Category
.
Hay la siguiente diferencia,
InstallSchema
El propósito de InstallSchema.php es crear una nueva tabla / atributo / campos en la base de datos
InstallData
El propósito de InstallData.php es insertar datos / valores en la base de datos.
Magento2 utiliza cuatro tipos de archivos para las operaciones iniciales relacionadas con la base de datos que se ejecutan solo con el proceso de instalación del módulo (estos archivos se ejecutan solo una vez fuera de su existencia). Esos archivos son los siguientes
- InstallSchema.php
- InstallData.php
- UpgradeSchema.php
- UpgradeData.php
Todos estos archivos están presentes en el Magento_root/{app/Vendor}/{Vendor_Name}/{Module_Name}/Setup
espacio de nombres de su módulo magento. Aquí he descrito todos los archivos con su uso.
InstallSchema.php
Este archivo se ejecuta primero justo después del registro de sus módulos (significa justo después de que su módulo y sus entradas de versión se realicen en la tabla ->
setup_module
). Este archivo se utiliza para crear tablas con su atributo de columnas en su base de datos que luego utilizará el nuevo módulo instalado.
InstallData.php
Este archivo se ejecuta después
InstallSchema.php
. Se utiliza para agregar datos a la tabla recién creada o cualquier tabla existente.
UpgradeSchema.php
Este archivo viene con el módulo y se ejecuta solo entonces, si ya tiene la versión anterior de esos módulos instalada en su magento (significa que tiene la entrada de su versión anterior en la tabla ->
setup_module
). Se usa para manipular la tabla relacionada con el módulo (significa que se usa para alterar el esquema de la tabla significa atributo de columnas y para agregar una nueva columna a esa tabla).
UpgradeData.php
Este archivo se ejecuta después
UpgradeSchema.php
. Tiene el mismo concepto queInstallData.php
tiene, pero al usar este archivo puede cambiar / alterar el contenido de la base de datos sin el uso de archivos de modelo. También puede usar este archivo para agregar contenido nuevo a la base de datosInstallData.php
. Pero lo mismoUpgradeSchema.php
también se ejecutará solo si tiene la versión anterior de los módulos instalada en su magento.
Como dije al comenzar, estos archivos se ejecutan solo una vez, por lo que el uso básico de estos archivos es preparar las tablas y los datos para el Módulo que el módulo ha utilizado a lo largo de su existencia.
Nota: Magento usa estos archivos para crear tablas que se utilizan en las funcionalidades de Magentos y para agregar contenidos como cms_contents, customer_groups & attribute, Products_Types & attribute, Taxation groups, etc.
Hay una diferencia básica entre 2 es
InstallSchema
se ejecutará cuando se instale el módulo para configurar la estructura de la base de datos
Mientras InstallData
se ejecutará cuando el módulo esté instalado para inicializar los datos para la tabla de la base de datos
Espero que esto borre su consulta.