回答:
まず、新しいモジュールをインストールすると、InstallSchemaとInstallDataの両方のメソッドが呼び出されます。
スキーマ設定スクリプトはデータベーススキーマを変更し、必要なデータベーステーブルを作成または変更します。モジュールがインストール中の場合、Setup \ InstallSchema :: install()が実行されます。
それは、新しいテーブルとその構造を持つフィールドを作成することを意味します。
InstallDataセットアップスクリプトには、モジュールをデータベースに挿入する必要があるエントリが含まれています。Magentoにデフォルトで付属している属性、Cmsページ、さまざまなデフォルトグループおよびロールは、すべてデータセットアップの例です。
データのセットアップはスキーマのセットアップの後に実行され、同様に機能します。
結論に至ると、InstallSchemaはテーブルとその構造を作成するために使用されます。InstallDataは、テーブルへのデータの挿入/追加に使用されます。
Customer
、Qoute
、Order
、Catalog
、Product
、Category
。
以下の違いがあります
InstallSchema
InstallSchema.phpの目的は、データベースに新しいテーブル/属性/フィールドを作成することです
InstallData
InstallData.phpの目的は、データベースにデータ/値を挿入することです。
Magento2は、モジュールのインストールプロセスで実行されるデータベースに関連する初期操作に4つのタイプのファイルを使用します(これらのファイルは、存在しない場合に1回だけ実行されます)。それらのファイルは次のとおりです
- 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
)。これは、モジュールに関連するテーブルを操作するために使用されます(テーブルスキーマの変更に使用されることを意味し、列属性を意味し、そのテーブルに新しい列を追加します)。
UpgradeData.php
このファイルはの後に実行され
UpgradeSchema.php
ます。概念は同じですが、InstallData.php
このファイルを使用すると、モデルファイルを使用せずにデータベースの内容を変更/変更できます。このファイルを使用して、同じコンテンツをデータベースに追加することもできますInstallData.php
。しかし、同じようにUpgradeSchema.php
それが実行されるのは、その前のバージョンのモジュールがmagentoにインストールされている場合のみです。
最初に述べたように、これらのファイルは1回しか実行されないため、このファイルの基本的な用途は、モジュールが存在する間、モジュールによって使用されるテーブルとデータを準備することです。
注:Magentoはこれらのファイルを使用して、Magentosの機能で使用されるテーブルを作成し、cms_contents、customer_groupsと属性、Products_Typesと属性、課税グループなどのコンテンツを追加します。