InstallSchemaとInstallDataの違い


11

InstallSchemaとInstallDataの違いを詳しく知りたい。

また、私は使用することができたときに知っておく必要がありますInstallSchema.phpInstallData.php


それでも問題が解決しない場合はお知らせください。それ以外の場合は回答を受け入れて、他のユーザーを
サポートしてください

回答:


18

まず、新しいモジュールをインストールすると、InstallSchemaとInstallDataの両方のメソッドが呼び出されます。

スキーマ設定スクリプトはデータベーススキーマを変更し、必要なデータベーステーブルを作成または変更します。モジュールがインストール中の場合、Setup \ InstallSchema :: install()が実行されます。

それは、新しいテーブルとその構造を持つフィールドを作成することを意味します。

InstallDataセットアップスクリプトには、モジュールをデータベースに挿入する必要があるエントリが含まれています。Magentoにデフォルトで付属している属性、Cmsページ、さまざまなデフォルトグループおよびロールは、すべてデータセットアップの例です。

データのセットアップはスキーマのセットアップの後に実行され、同様に機能します。

結論に至ると、InstallSchemaはテーブルとその構造を作成するために使用されます。InstallDataは、テーブルへのデータの挿入/追加に使用されます。


手段のための追加属性のInstallDataの使用CustomerQouteOrderCatalogProductCategory
Ketan Borada 2017年

InstallDataを使用して、属性(属性の値)のInsertDataを作成します。installSchemaによって「Slider」というテーブルを作成したとします。次に、各スライドデータを挿入し、InstallDataファイルを使用して、各スライドのデータを定義する必要があります。 。理にかなっていますか?
マンタンデイブ2017

8

以下の違いがあります

InstallSchema

InstallSchema.phpの目的は、データベースに新しいテーブル/属性/フィールドを作成することです

InstallData

InstallData.phpの目的は、データベースにデータ/値を挿入することです。


6

Magento2は、モジュールのインストールプロセスで実行されるデータベースに関連する初期操作に4つのタイプのファイルを使用します(これらのファイルは、存在しない場合に1回だけ実行されます)。それらのファイルは次のとおりです

  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にインストールされている場合のみです。

最初に述べたように、これらのファイルは1回しか実行されないため、このファイルの基本的な用途は、モジュールが存在する間、モジュールによって使用されるテーブルとデータを準備することです。

注:Magentoはこれらのファイルを使用して、Magentosの機能で使用されるテーブルを作成し、cms_contents、customer_groupsと属性、Products_Typesと属性、課税グループなどのコンテンツを追加します。


4

2つの間に基本的な違いがあります

InstallSchema モジュールがインストールされてデータベース構造をセットアップするときに実行されます

一方では、InstallDataモジュールは、データベーステーブルのデータを初期するために設置されたときに実行されます

これでクエリがクリアされます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.