ความแตกต่างระหว่าง InstallSchema และ InstallData


11

ฉันต้องการทราบความแตกต่างระหว่าง InstallSchema และ InstallData อย่างละเอียด

ฉันต้องรู้ด้วยเมื่อฉันสามารถใช้InstallSchema.phpและInstallData.php?


แจ้งให้เราทราบหากคุณยังมีปัญหาใด ๆ มิฉะนั้นยอมรับคำตอบเพื่อให้ผู้ใช้รายอื่นได้รับความช่วยเหลือ
Manthan Dave

คำตอบ:


19

อันดับแรกทั้ง InstallSchema และ InstallData จะเรียกวิธีการทั้งสองเมื่อคุณติดตั้งโมดูลใหม่

สคริปต์การตั้งค่าสคีมาเปลี่ยนสคีมาฐานข้อมูลซึ่งสร้างหรือเปลี่ยนแปลงตารางฐานข้อมูลที่ต้องการ หากโมดูลกำลังติดตั้ง Setup \ InstallSchema :: install () จะถูกใช้งาน

มันหมายถึงมันสร้างตารางใหม่และเขตข้อมูลที่มีโครงสร้าง

สคริปต์การติดตั้ง InstallData มีรายการโมดูลที่ต้องการแทรกลงในฐานข้อมูล คุณสมบัติที่มาพร้อมกับวีโอไอพีโดยค่าเริ่มต้นหน้าซม. กลุ่มและบทบาทเริ่มต้นที่หลากหลายเป็นตัวอย่างของการตั้งค่าข้อมูลทั้งหมด

การตั้งค่าข้อมูลจะถูกดำเนินการหลังจากตั้งค่า Schema พวกเขาทำงานในลักษณะเดียวกัน

ดังนั้นมาถึงที่ประชุมใหญ่ข้อแตกต่างที่สำคัญระหว่างทั้งสองคือ InstallSchema ใช้เพื่อสร้างตารางและโครงสร้างของมัน ในขณะที่ InstallData ใช้เพื่อแทรก / เพิ่มข้อมูลลงในตาราง


หมายถึง InstallData ใช้สำหรับแอตทริบิวต์เพิ่มสำหรับCustomer, Qoute, Order, Catalog, ,Product Category
Ketan Borada

คุณถูกต้องบางส่วน InstallData จะใช้ในการ InsertData ของ attribute (ค่าของ attribute) ให้บอกว่าคุณได้สร้างตารางที่เรียกว่า "Slider" โดย installSchema ตอนนี้คุณต้องแทรกข้อมูลสไลด์แต่ละอันจากนั้นคุณต้องใช้ไฟล์ InstallData และกำหนดข้อมูลของแต่ละสไลด์ . ทำให้รู้สึก?
Manthan Dave

8

มีความแตกต่างดังต่อไปนี้

InstallSchema

วัตถุประสงค์ของ InstallSchema.php คือการสร้างตาราง / คุณสมบัติ / ฟิลด์ใหม่ในฐานข้อมูล

InstallData

วัตถุประสงค์ InstallData.php คือการแทรกข้อมูล / ค่าลงในฐานข้อมูล


6

Magento2ใช้ไฟล์สี่ประเภทสำหรับการดำเนินการเริ่มต้นที่เกี่ยวข้องกับฐานข้อมูลที่ดำเนินการเพียงแค่กระบวนการติดตั้งของโมดูล (ไฟล์เหล่านี้จะทำงานเพียงครั้งเดียวตลอดเวลาที่มีอยู่) ไฟล์เหล่านั้นมีดังนี้

  1. InstallSchema.php
  2. InstallData.php
  3. UpgradeSchema.php
  4. UpgradeData.php

ไฟล์เหล่านี้ทั้งหมดแสดง ate Magento_root/{app/Vendor}/{Vendor_Name}/{Module_Name}/SetupName space ของโมดูล magento ของคุณ ที่นี่ฉันได้อธิบายไฟล์ทั้งหมดที่มีการใช้งานของพวกเขา

InstallSchema.php

ไฟล์นี้จะถูกเรียกใช้งานครั้งแรกหลังจากการลงทะเบียนโมดูลของคุณ (หมายถึงหลังจากที่โมดูลและรายการเวอร์ชันของคุณเสร็จสิ้นในตาราง -> setup_module) ไฟล์นี้ใช้เพื่อสร้างตารางที่มีแอตทริบิวต์คอลัมน์ในฐานข้อมูลของคุณซึ่งจะถูกใช้ในภายหลังโดยโมดูลที่ติดตั้งใหม่

InstallData.php

InstallSchema.phpไฟล์นี้จะดำเนินการหลังจาก มันถูกใช้เพื่อเพิ่มข้อมูลไปยังตารางที่สร้างขึ้นใหม่หรือตารางที่มีอยู่ใด ๆ

UpgradeSchema.php

ไฟล์นี้มาพร้อมกับโมดูล & ทำงานเฉพาะในกรณีที่คุณมีโมดูลรุ่นก่อนหน้านี้ติดตั้งในวีโอไอพีของคุณแล้ว (หมายความว่ามันมีรายการรุ่นก่อนหน้านี้ลงในตาราง -> setup_module) มันถูกใช้เพื่อจัดการกับตารางที่เกี่ยวข้องกับโมดูล (หมายถึงมันจะใช้ในการเปลี่ยนแปลงสคีตารางหมายถึงคอลัมน์แอตทริบิวต์ & เพื่อเพิ่มคอลัมน์ใหม่ลงในตารางที่)

UpgradeData.php

UpgradeSchema.phpไฟล์นี้จะวิ่งไล่ตาม มันมีแนวคิดแบบเดียวกับที่InstallData.phpมี แต่ใช้ไฟล์นี้คุณสามารถเปลี่ยน / แก้ไขเนื้อหาฐานข้อมูลโดยไม่ต้องใช้ไฟล์โมเดล InstallData.phpนอกจากนี้คุณยังสามารถใช้ไฟล์นี้เพื่อเพิ่มเนื้อหาใหม่ไปยังฐานข้อมูลเดียวกันเรา แต่UpgradeSchema.phpมันจะทำงานได้เหมือนกันถ้าคุณมีโมดูลรุ่นก่อนหน้าติดตั้งอยู่ในวีโอไอพีของคุณ

ดังที่ฉันได้กล่าวในการเริ่มต้นไฟล์เหล่านี้ทำงานเพียงครั้งเดียวดังนั้นการใช้งานพื้นฐานของไฟล์นี้คือการเตรียมตารางและข้อมูลสำหรับโมดูลซึ่งโมดูลนั้นถูกใช้งานจนหมด

หมายเหตุ: วีโอไอพีใช้ไฟล์เหล่านี้เพื่อสร้างตารางที่ใช้ในฟังก์ชัน Magentos & เพื่อเพิ่มเนื้อหาเช่น cms_contents, customer_groups & attribute, Products_Types & attribute, Taxation ฯลฯ


4

มีความแตกต่างพื้นฐานระหว่าง 2 คือ

InstallSchema จะทำงานเมื่อติดตั้งโมดูลเพื่อตั้งค่าโครงสร้างฐานข้อมูล

ในขณะที่InstallDataจะทำงานเมื่อโมดูลถูกติดตั้งเพื่อเริ่มต้นข้อมูลสำหรับตารางฐานข้อมูล

Hoope นี่ล้างแบบสอบถามของคุณ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.