ฉันต้องการทราบความแตกต่างระหว่าง InstallSchema และ InstallData อย่างละเอียด
ฉันต้องรู้ด้วยเมื่อฉันสามารถใช้InstallSchema.php
และInstallData.php
?
ฉันต้องการทราบความแตกต่างระหว่าง InstallSchema และ InstallData อย่างละเอียด
ฉันต้องรู้ด้วยเมื่อฉันสามารถใช้InstallSchema.php
และInstallData.php
?
คำตอบ:
อันดับแรกทั้ง InstallSchema และ InstallData จะเรียกวิธีการทั้งสองเมื่อคุณติดตั้งโมดูลใหม่
สคริปต์การตั้งค่าสคีมาเปลี่ยนสคีมาฐานข้อมูลซึ่งสร้างหรือเปลี่ยนแปลงตารางฐานข้อมูลที่ต้องการ หากโมดูลกำลังติดตั้ง Setup \ InstallSchema :: install () จะถูกใช้งาน
มันหมายถึงมันสร้างตารางใหม่และเขตข้อมูลที่มีโครงสร้าง
สคริปต์การติดตั้ง InstallData มีรายการโมดูลที่ต้องการแทรกลงในฐานข้อมูล คุณสมบัติที่มาพร้อมกับวีโอไอพีโดยค่าเริ่มต้นหน้าซม. กลุ่มและบทบาทเริ่มต้นที่หลากหลายเป็นตัวอย่างของการตั้งค่าข้อมูลทั้งหมด
การตั้งค่าข้อมูลจะถูกดำเนินการหลังจากตั้งค่า Schema พวกเขาทำงานในลักษณะเดียวกัน
ดังนั้นมาถึงที่ประชุมใหญ่ข้อแตกต่างที่สำคัญระหว่างทั้งสองคือ InstallSchema ใช้เพื่อสร้างตารางและโครงสร้างของมัน ในขณะที่ InstallData ใช้เพื่อแทรก / เพิ่มข้อมูลลงในตาราง
Customer
, Qoute
, Order
, Catalog
, ,Product
Category
มีความแตกต่างดังต่อไปนี้
InstallSchema
วัตถุประสงค์ของ InstallSchema.php คือการสร้างตาราง / คุณสมบัติ / ฟิลด์ใหม่ในฐานข้อมูล
InstallData
วัตถุประสงค์ InstallData.php คือการแทรกข้อมูล / ค่าลงในฐานข้อมูล
Magento2ใช้ไฟล์สี่ประเภทสำหรับการดำเนินการเริ่มต้นที่เกี่ยวข้องกับฐานข้อมูลที่ดำเนินการเพียงแค่กระบวนการติดตั้งของโมดูล (ไฟล์เหล่านี้จะทำงานเพียงครั้งเดียวตลอดเวลาที่มีอยู่) ไฟล์เหล่านั้นมีดังนี้
- InstallSchema.php
- InstallData.php
- UpgradeSchema.php
- UpgradeData.php
ไฟล์เหล่านี้ทั้งหมดแสดง ate Magento_root/{app/Vendor}/{Vendor_Name}/{Module_Name}/Setup
Name 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 ฯลฯ
มีความแตกต่างพื้นฐานระหว่าง 2 คือ
InstallSchema
จะทำงานเมื่อติดตั้งโมดูลเพื่อตั้งค่าโครงสร้างฐานข้อมูล
ในขณะที่InstallData
จะทำงานเมื่อโมดูลถูกติดตั้งเพื่อเริ่มต้นข้อมูลสำหรับตารางฐานข้อมูล
Hoope นี่ล้างแบบสอบถามของคุณ