Когда schema_version и версия данных будут другими?

8

Например, у меня нет установочных скриптов в Моем модуле, могу ли я игнорировать setup_versionтег в module.xmlфайле.

В m1 автоматически устанавливаются модули, теперь сначала выдается ошибка (если мы не запустили команду setup upgrade). Почему мне нужно вручную запустить обновление установки?

Какой сценарий schema_versionи data_versionбудет другим? Я заметил, что почти все записи в таблице setup_module содержат одинаковые значения.

Sivakumar
источник
1
автоматическое обновление было удалено в пользу производительности и стабильности. Проверка и сравнение всех версий модулей по каждому запросу бесполезна при производстве. Обновление базы данных - это действие, которое должно находиться под полным контролем разработчика, но не самого приложения.
V Коротун
В M2 есть два вида модификаций базы данных, которые вы можете иметь, реализуя два соответствующих интерфейса: "\ Magento \ Framework \ Setup \ UpgradeDataInterface" и "\ Magento \ Framework \ Setup \ UpgradeSchemaInterface". Таким образом, вы можете выполнить обновление данных базы данных без изменения схемы базы данных. Вот почему версии тех, кто живет своей жизнью.
V Коротун

Ответы:

12

data_version версия данных, добавляемых с помощью скриптов данных.

Эти скрипты разрабатываются в папке модуля под Setup/InstallData.phpи Setup/UpgradeData.php.

schema_version версия схемы базы данных, добавленная с помощью сценариев установки.

Эти скрипты разрабатываются в папке модуля под Setup/InstallSchema.phpиSetup/UpgradeSchema.php

Таким образом, сценарий, когда data_versionи schema_versionотличаются, заключается в следующем:

  • У вас есть модуль, который имеет сценарии установки и данных
  • Обычно вы должны запускать php bin/magento setup:upgradeтак, чтобы скрипты схемы и данных запускались
  • Вместо этого вы сначала запускаете php bin/magento setup:db-schema:upgrade. На данный момент schema_versionбудет отличаться отdata_version
  • Запуск php bin/magento setup:db-data:upgradeобновит данные и сделает обе версии одинаковыми
Рафаэль в цифровом пианизме
источник
1
Но почему кто-то будет запускать эти команды индивидуально, а неsetup:upgrade
MagePsycho
1
@MagePsycho хорошо, да, это не нормальное поведение. Но так как обе команды доступны, это может произойти правильно.
Рафаэль на цифровом пианизме
@MagePsycho Нет причин, я думаю, что это полностью избыточно.
Буньямин Инан