답변:
새 모듈을 설치할 때 먼저 InstallSchema 및 InstallData 모두 메소드가 호출됩니다.
스키마 설정 스크립트는 데이터베이스 스키마를 변경하고 필요한 데이터베이스 테이블을 작성하거나 변경합니다. 모듈을 설치하는 경우 Setup \ InstallSchema :: install ()이 실행됩니다.
즉, 구조가있는 새 테이블과 필드를 만듭니다.
InstallData 설정 스크립트에는 데이터베이스에 삽입해야하는 항목이 포함되어 있습니다. 기본적으로 Magento와 함께 제공되는 속성, CMS 페이지, 다양한 기본 그룹 및 역할은 모두 데이터 설정의 예입니다.
데이터 설정은 스키마 설정 후에 실행되며 비슷한 방식으로 작동합니다.
결론에 관해서는, 둘 다의 주요 차이점은 InstallSchema가 테이블과 그 구조를 만드는 데 사용된다는 것입니다. InstallData는 테이블에 데이터를 삽입 / 추가하는 데 사용됩니다.
Customer
, Qoute
, Order
, Catalog
, Product
, Category
.
다음과 같은 차이점이 있습니다.
InstallSchema
InstallSchema.php의 목적은 데이터베이스에 새로운 테이블 / 속성 / 필드를 생성하는 것입니다
InstallData
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
). 모듈과 관련된 테이블을 조작하는 데 사용됩니다 (테이블 스키마 의미 컬럼 속성을 변경하고 해당 테이블에 새 컬럼을 추가하는 데 사용됨을 의미).
UpgradeData.php
이 파일은 이후에 실행됩니다
UpgradeSchema.php
. 개념과 동일InstallData.php
하지만이 파일을 사용하면 모델 파일을 사용하지 않고도 데이터베이스 내용을 변경 / 변경할 수 있습니다. 이 파일을 사용하여 동일한 내용을 데이터베이스에 새 내용을 추가 할 수도 있습니다InstallData.php
. 그러나UpgradeSchema.php
magento에 해당 모듈의 이전 버전이 설치되어있는 경우에만 실행됩니다.
내가 말했듯 이이 파일을 한 번만 실행 하므로이 파일의 기본 용도는 모듈이 존재하는 동안 모듈에서 사용 된 모듈에 대한 테이블 및 데이터를 준비하는 것입니다.
참고 : Magento는이 파일을 사용하여 Magentos 기능에 사용되는 테이블을 생성하고 cms_contents, customer_groups & attributes, Products_Types & attributes, Taxation groups 등과 같은 내용을 추가합니다.