Рабочий процесс разработки Magento: как "управлять версиями" баз данных и обновлять текущую установку Magento из тестовой установки magento?
Я публикую этот вопрос, потому что хотел бы знать, каков наилучший рабочий процесс разработки для тех, кто хочет управлять всеми аспектами интернет-магазина.
Как и во всех веб-разработках, конечно, очень важно иметь живую копию и, по крайней мере, одну копию разработки всего программного решения. Однако управление материалами Magento не похоже на управление другим программным обеспечением на основе файлов , потому что в игру также вступает компонент базы данных, итак, помимо того факта, что я могу использовать такой инструмент, как Git, в качестве инструмента VCS для управления версиями, как бы я справился с различиями в базе данных между текущей и разрабатываемой версиями?
Я, конечно, мог бы сделать резервные копии действующей базы данных с помощью cron и вставить инструкции SQL INSERT из резервной копии в систему управления версиями, но после этого две базы данных будут развиваться отдельно, пока клиенты регистрируются и размещают заказы с одной стороны, которые поступают в действующую базу данных, и по мере внесения обновлений в база данных разработки отдельно. Когда дело дойдет до объединения версий разработки и живых версий, файлы php можно без проблем обновить с помощью git (используя gitignore в одном файле, в котором размещены сведения о конфигурации базы данных), но как насчет файлов базы данных? Как я могу объединить два файла, содержащих инструкции SQL INSERT из двух резервных копий, не вызывая сбоя и не разрушая систему?
Это темная область жизненного цикла разработки Magento, с которой я сталкиваюсь: управляющий различия в базах данных.
Как мне кажется, как только решение синхронизация содержимого баз данных которые отличаются между разработкой/тестированием и видео версий в Magento магазин записать на листке бумаги все изменения, внесенные в разработке версия через админ-панель, и надеюсь не ошибиться с размером, и затем, как только все будет протестировано и работает файл, чтобы перейти к видео-версия и выполняем те же изменения, в то время как Magento является автономно и есть переведен в режим технического обслуживания. Поскольку это ручной процесс, подвержен ли он ошибкам.
Итак, каков лучший способ синхронизации базы данных между тестовым сервером magento и действующим сервером magento?
Спасибо.
4 answers
Варианты, о которых я знаю
1.) Вручную - другими словами, повторяя ваши действия вручную в фоновом режиме = как вы упомянули, подвержены ошибкам, медленно
2.) На уровне базы данных с прямыми SQL-запросами = подвержен ошибкам
3.) Создайте расширение, которое добавляет, вносит изменения с помощью сценариев установки/обновления sql. Эти файлы являются частью вашего хранилища и могут быть развернуты. Этот подход в основном обходит пользовательский интерфейс.
4.) Была проделана некоторая работа по попытке чтобы сделать часть этого рабочего процесса более приятной в таких проектах, как этот, но я думаю, что он еще не совсем готов к прайм-тайму.
Из всех этих вариантов я в настоящее время предпочитаю 3.)
Существует mageploy, который также может решить эту проблему.
Существуют инструменты для баз данных, такие как программное обеспечение Quest (теперь Dell) Жаба для MySQL. Этот инструмент управления базами данных имеет функции сравнения данных и структуры, которые вы можете использовать для просмотра изменений между двумя базами данных. Просто сохраните резервные копии (или git-коммиты) версий базы данных, которые вы хотите сравнить, и вуаля. Существует даже генератор сценариев для синхронизации этих двух функций.
Мы решили эту проблему, создав удаленную базу данных для локальных и промежуточных разработок для чтения/записи. Действительно помогает сэкономить время и эффективность; больше никакого клонирования, загрузка базы данных в среду каждого пользователя.