我想详细了解InstallSchema和InstallData之间的区别。
我还需要知道什么时候可以使用InstallSchema.php
和InstallData.php
?
我想详细了解InstallSchema和InstallData之间的区别。
我还需要知道什么时候可以使用InstallSchema.php
和InstallData.php
?
Answers:
首先,在安装任何新模块时都将同时调用InstallSchema和InstallData两种方法
模式设置脚本更改数据库模式,它们创建或更改所需的数据库表。如果正在安装模块,则执行Setup \ InstallSchema :: install()。
这意味着它将使用结构创建新表及其字段。
InstallData安装脚本包含需要插入数据库的条目模块。默认情况下,Magento附带的属性,Cms页面,各种默认组和角色都是数据设置的示例。
数据设置是在架构设置之后执行的,它们以类似的方式起作用。
因此得出结论,两者之间的主要区别是InstallSchema用于制作表及其结构。而InstallData用于向表中插入/添加数据。
Customer
,Qoute
,Order
,Catalog
,Product
,Category
。
有以下区别,
安装模式
InstallSchema.php的目的是在数据库中创建新的表/属性/字段
安装数据
InstallData.php的目的是将数据/值插入数据库。
Magento2使用四种类型的文件来进行与数据库相关的初始操作,这些操作仅在模块的安装过程中执行(这些文件在存在时仅运行一次)。这些文件如下
- InstallSchema.php
- InstallData.php
- UpgradeSchema.php
- 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和属性,税收组等内容。