Это обычная ситуация для разработчиков. Гораздо проще изменить код и схему и быть уверенным, что все в порядке, когда есть небольшая кодовая база, которая досконально изучена и не обладает большой гибкостью для пользовательского интерфейса. Конечно, это не относится к Magento, который может быть довольно сложным для включения в схемы автоматизированного тестирования и непрерывной интеграции. Тем не менее, есть некоторые познаваемые и проверяемые модели поведения, на которые вы можете положиться.
Обзор
Имея дело с локальной разработкой, которая объединяется с производственной, нужно быть уверенным, что изменения схемы и данных, относящиеся к новым или измененным функциям, также применяются при обновлении файловой системы. Именно так работает Magento. Файлы конфигурации модуля могут содержать номер версии и могут настраивать ресурсы установки. Эта информация используется для входа в рабочий процесс изменения схемы и данных, в результате чего информация о версии добавляется в базу данных. Именно согласованность между номером версии, обозначенным файлом, и номером версии, зарегистрированной в базе данных, позволяет / системе может сделать вывод о том, что база данных находится в соответствующем состоянии с учетом имеющихся файлов.
Это означает, что когда новые / обновленные файлы модулей объединяются в производственную среду и выполняются необходимые условия (например, кеш конфигурации недействителен и т. Д.), Должно произойти обновление базы данных. Ваше (правильное) беспокойство заключается в том, что этот процесс может сломаться из-за различий на уровне удаленных серверов, различий в удаленных данных и т. Д. Без строго регулируемого процесса тестирования интеграции возникают некоторые накладные расходы.
План атаки: выберите правильную стратегию
Основная деятельность в этой области - оценка областей воздействия модуля на базу данных. Это должно быть просто с любым модулем, который стоит установить; проверьте любое из следующего:
- Файл system.xml
- Наличие скриптов установки / обновления в папках sql или data
- Наличие настраиваемого класса ресурсов установки (настроенного в
global/resources
xpath)
- Соответствующий XML-файл конфигурации (номер версии в узле конфигурации модуля и ресурс настройки в
global/resources
xpath)
Для 1 просто просмотрите структуру и знайте, что ее влияние на базу данных будет ограничено таблицей core_config_data
, и, как правило, только после того, как администратор сохранил значения через графический интерфейс (обратите внимание, что 1. также применяется ниже).
Для 2 и 3 просмотрите сценарии, которые должны быть запущены. Их можно разделить на три основные области: 1. Настройки конфигурации - ищите setConfigData()
и deleteConfigData()
вызовов 2. Добавление и редактирование таблиц (новые таблицы, добавление столбцов и т. Д.) 3. Изменения и дополнения, связанные с EAV; ищите ресурсы для настройки EAV 4. Изменения данных, отличных от EAV: установка новых данных или изменение существующих данных
Это вопрос ощущения и интуиции, но измерение уровня воздействия на базу данных позволит вам определить, следует ли вам клонировать производственные данные на локальный разработчик и протестировать рабочий процесс настройки локально, убедившись, что он работает нормально, затем перейти в производство и повторно -проверка (резервное копирование всегда!). Если изменения обширны, возможно, лучше всего отключить сайт, чтобы вы могли быть уверены, что не потеряете данные о заказах или клиентах, если вам нужно будет вернуться к нему после неудачного обновления.
person
benmarks
schedule
09.09.2012