Perbedaan antara InstallSchema dan InstallData

11

Saya ingin tahu perbedaan antara InstallSchema dan InstallData secara detail.

Saya juga perlu tahu kapan saya bisa menggunakan InstallSchema.phpdan InstallData.php?

Ketan Borada
sumber
Beri tahu saya jika Anda masih memiliki masalah, jika tidak, terima jawaban sehingga pengguna lain dibantu
Manthan Dave

Jawaban:

18

Pertama, kedua InstallSchema dan InstallData kedua metode dipanggil ketika Anda menginstal modul baru

Skema penyiapan skrip mengubah skema basis data, skrip membuat atau mengubah tabel basis data yang diperlukan. Jika modul diinstal, Setup \ InstallSchema :: install () dijalankan.

Ini berarti membuat tabel baru dan bidangnya dengan strukturnya.

Skrip setup InstallData berisi modul entri yang perlu dimasukkan ke dalam basis data. Atribut yang datang dengan Magento secara default, halaman Cms, berbagai grup dan peran default, adalah semua contoh pengaturan data.

Pengaturan data dijalankan setelah pengaturan Skema, mereka berfungsi dengan cara yang sama.

Jadi sampai pada kesimpulan, Perbedaan utama antara keduanya adalah InstallSchema digunakan untuk membuat tabel dan strukturnya. Sedangkan InstallData digunakan untuk menyisipkan / menambahkan data ke dalam tabel.

Manthan Dave
sumber
Berarti, penggunaan InstallData untuk atribut add untuk Customer, Qoute, Order, Catalog, Product, Category.
Ketan Borada
Yah Anda sebagian benar, InstallData digunakan untuk menyisipkan data atribut (nilai atribut). Katakanlah Anda telah membuat tabel yang disebut "Slider" oleh installSchema. Sekarang Anda perlu memasukkan setiap slide data, maka Anda perlu menggunakan file InstallData dan menentukan data dari setiap slide. . Masuk akal ?
Manthan Dave
8

Ada perbedaan berikut,

Instal Skema

Tujuan InstallSchema.php adalah untuk membuat tabel / atribut / bidang baru dalam Database

InstallData

Tujuan InstallData.php adalah untuk memasukkan data / nilai ke dalam basis data.

Abhishek Tripathi
sumber
6

Magento2 menggunakan Empat Jenis file untuk operasi awal yang terkait dengan database yang dieksekusi hanya dengan proses instalasi modul (File-file ini hanya berjalan sekali selama keluar dari keberadaannya). File-file itu adalah sebagai berikut

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

Semua file ini tersedia di Magento_root/{app/Vendor}/{Vendor_Name}/{Module_Name}/Setupruang Nama modul magento Anda. Di sini saya telah menjelaskan semua file dengan penggunaannya.

InstallSchema.php

File ini dijalankan pertama kali tepat setelah pendaftaran modul Anda (Berarti setelah modul Anda & entri versinya selesai di tabel -> setup_module). File ini digunakan untuk membuat tabel dengan atribut kolomnya ke dalam database Anda yang kemudian digunakan oleh modul yang baru diinstal.

InstallData.php

File ini dieksekusi setelah InstallSchema.php. Ini digunakan untuk menambahkan data ke tabel yang baru dibuat atau tabel yang ada.

TingkatkanSchema.php

File ini dilengkapi dengan modul & hanya berjalan saat itu, jika Anda sudah menginstal modul versi sebelumnya di magento Anda (Berarti ia memiliki entri versi sebelumnya ke dalam tabel -> setup_module). Ini digunakan untuk memanipulasi tabel yang berkaitan dengan modul (Berarti itu digunakan untuk mengubah skema tabel berarti atribut kolom & untuk menambahkan kolom baru ke dalam tabel itu).

UpgradeData.php

File ini berjalan setelah UpgradeSchema.php. Ini memiliki konsep yang sama seperti yang InstallData.phptelah tetapi menggunakan file ini Anda dapat mengubah / mengubah konten database tanpa menggunakan file model. Anda juga dapat menggunakan file ini untuk menambahkan konten baru ke database yang sama dengan kami InstallData.php. Tetapi sama seperti UpgradeSchema.phpitu juga akan berjalan hanya jika Anda memiliki modul versi sebelumnya dipasang di magento Anda.

Seperti yang saya katakan dalam memulai file-file ini berjalan hanya sekali sehingga penggunaan dasar dari file ini adalah untuk mempersiapkan tabel & data untuk Modul yang telah digunakan oleh modul melalui keberadaannya.

Catatan: Magento menggunakan file-file ini untuk membuat tabel yang digunakan dalam fungsionalitas Magentos & untuk menambahkan konten seperti cms_contents, customer_groups & atribut, Products_Types & atribut, grup perpajakan, dll.

Abhishek Tripathi
sumber
4

Ada perbedaan mendasar antara 2 ini

InstallSchema akan berjalan ketika modul diinstal untuk mengatur struktur database

Sementara InstallDataakan berjalan ketika modul diinstal untuk menginisialisasi data untuk tabel database

Perbaiki ini, hapus kueri Anda.

Kul
sumber