Kapan schema_version & versi data akan berbeda?

8

Misalnya saya tidak punya skrip pengaturan di modul saya, bisakah saya mengabaikan setup_versiontag pada module.xmlfile.

Pada m1 modul yang dipasang secara otomatis, sekarang terlebih dahulu melempar kesalahan (jika kita tidak menjalankan perintah pemutakhiran pengaturan). Mengapa saya perlu menjalankan upgrade pengaturan secara manual?

Apa skenarionya schema_versiondan data_versionakan berbeda? Saya mengamati hampir catatan dalam tabel setup_module berisi nilai yang sama.

sivakumar
sumber
1
peningkatan otomatis dihapus demi kinerja dan stabilitas. Memeriksa dan membandingkan semua versi modul pada setiap dan setiap permintaan adalah biaya produksi yang tidak berguna. Memutakhirkan basis data adalah jenis tindakan yang harus di bawah kendali penuh pengembang, tetapi bukan aplikasi itu sendiri.
V Korotun
Di M2 ada dua jenis modifikasi database yang mungkin Anda miliki, dengan menerapkan dua antarmuka yang sesuai: "\ Magento \ Framework \ Setup \ UpgradeDataInterface" dan "\ Magento \ Framework \ Setup \ UpgradeSchemaInterface". Jadi, Anda dapat melakukan pemutakhiran ke data basis data tanpa mengubah skema basis data. Itu sebabnya versi dari mereka menjalani kehidupan mereka sendiri.
V Korotun

Jawaban:

12

data_version adalah versi data yang ditambahkan melalui skrip data.

Skrip tersebut dikembangkan di bawah folder modul di bawah Setup/InstallData.phpdan Setup/UpgradeData.php.

schema_version adalah versi skema database yang ditambahkan melalui skrip pengaturan.

Skrip tersebut dikembangkan di bawah folder modul di bawah Setup/InstallSchema.phpdanSetup/UpgradeSchema.php

Jadi skenario ketika data_versiondan schema_versionberbeda adalah sebagai berikut:

  • Anda memiliki modul yang memiliki skrip setup dan data
  • Biasanya Anda harus menjalankan php bin/magento setup:upgradeskrip skrip dan data baik akan berjalan
  • Alih-alih melakukan ini, Anda pertama kali menjalankan php bin/magento setup:db-schema:upgrade. Pada titik ini schema_versionakan berbeda dengandata_version
  • Menjalankan php bin/magento setup:db-data:upgradeakan memutakhirkan data dan membuat kedua versi sama
Raphael di Digital Pianism
sumber
1
Tetapi mengapa ada orang yang menjalankan perintah-perintah itu secara individual alih-alihsetup:upgrade
MagePsycho
1
@MagePsycho ya itu bukan perilaku normal. Tetapi karena kedua perintah tersedia itu bisa terjadi dengan benar.
Raphael di Digital Pianism
@MagePsycho Tidak ada alasan, saya pikir itu sepenuhnya berlebihan.
Bunyamin Inan