InstallSchema和InstallData之间的区别


11

我想详细了解InstallSchema和InstallData之间的区别。

我还需要知道什么时候可以使用InstallSchema.phpInstallData.php


让我知道您是否还有任何问题,否则请接受答案,以便其他用户获得帮助
Manthan Dave

Answers:


18

首先,在安装任何新模块时都将同时调用InstallSchema和InstallData两种方法

模式设置脚本更改数据库模式,它们创建或更改所需的数据库表。如果正在安装模块,则执行Setup \ InstallSchema :: install()。

这意味着它将使用结构创建新表及其字段。

InstallData安装脚本包含需要插入数据库的条目模块。默认情况下,Magento附带的属性,Cms页面,各种默认组和角色都是数据设置的示例。

数据设置是在架构设置之后执行的,它们以类似的方式起作用。

因此得出结论,两者之间的主要区别是InstallSchema用于制作表及其结构。而InstallData用于向表中插入/添加数据。


手段,InstallData使用用于附加属性CustomerQouteOrderCatalogProductCategory
Ketan Borada

好吧,您部分正确,InstallData用于属性的InsertData(属性的值)假设您已经通过installSchema创建了名为“ Slider”的表,现在您需要插入每个幻灯片数据,然后需要使用InstallData文件并定义每个幻灯片的数据。说得通 ?
Manthan Dave


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)。它用于操作与模块相关的表(意味着它用于更改表架构,即column属性和向该表中添加新列)。

UpgradeData.php

该文件在之后运行UpgradeSchema.php。它具有相同的概念,InstallData.php但是使用此文件,您可以在不使用模型文件的情况下更改/更改数据库内容。您也可以使用此文件向我们添加新内容到数据库 InstallData.php。但是,UpgradeSchema.php只有当您在magento中安装了该模块的先前版本时,它也一样会运行。

正如我在启动时所说的那样,这些文件仅运行一次,因此该文件的基本用途是为模块准备表和数据,该模块将通过其存在来使用这些表和数据。

注意:Magento使用这些文件来创建用于Magentos功能的表,并添加诸如cms_contents,customer_groups和属性,Products_Types和属性,税收组等内容。


4

2之间有基本区别

InstallSchema 将在安装模块以设置数据库结构时运行

InstallData安装模块以初始化数据库表的数据时,While 将运行

呼这清除您的查询。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.