Рабочий процесс разработки Magento: как "управлять версиями" баз данных и обновлять текущую установку Magento из тестовой установки magento?


Я публикую этот вопрос, потому что хотел бы знать, каков наилучший рабочий процесс разработки для тех, кто хочет управлять всеми аспектами интернет-магазина.

Как и во всех веб-разработках, конечно, очень важно иметь живую копию и, по крайней мере, одну копию разработки всего программного решения. Однако управление материалами Magento не похоже на управление другим программным обеспечением на основе файлов , потому что в игру также вступает компонент базы данных, итак, помимо того факта, что я могу использовать такой инструмент, как Git, в качестве инструмента VCS для управления версиями, как бы я справился с различиями в базе данных между текущей и разрабатываемой версиями?

Я, конечно, мог бы сделать резервные копии действующей базы данных с помощью cron и вставить инструкции SQL INSERT из резервной копии в систему управления версиями, но после этого две базы данных будут развиваться отдельно, пока клиенты регистрируются и размещают заказы с одной стороны, которые поступают в действующую базу данных, и по мере внесения обновлений в база данных разработки отдельно. Когда дело дойдет до объединения версий разработки и живых версий, файлы php можно без проблем обновить с помощью git (используя gitignore в одном файле, в котором размещены сведения о конфигурации базы данных), но как насчет файлов базы данных? Как я могу объединить два файла, содержащих инструкции SQL INSERT из двух резервных копий, не вызывая сбоя и не разрушая систему?

Это темная область жизненного цикла разработки Magento, с которой я сталкиваюсь: управляющий различия в базах данных.

Как мне кажется, как только решение синхронизация содержимого баз данных которые отличаются между разработкой/тестированием и видео версий в Magento магазин записать на листке бумаги все изменения, внесенные в разработке версия через админ-панель, и надеюсь не ошибиться с размером, и затем, как только все будет протестировано и работает файл, чтобы перейти к видео-версия и выполняем те же изменения, в то время как Magento является автономно и есть переведен в режим технического обслуживания. Поскольку это ручной процесс, подвержен ли он ошибкам.

Итак, каков лучший способ синхронизации базы данных между тестовым сервером magento и действующим сервером magento?

Спасибо.

Author: John Sonderson, 2013-10-22

4 answers

Варианты, о которых я знаю

1.) Вручную - другими словами, повторяя ваши действия вручную в фоновом режиме = как вы упомянули, подвержены ошибкам, медленно

2.) На уровне базы данных с прямыми SQL-запросами = подвержен ошибкам

3.) Создайте расширение, которое добавляет, вносит изменения с помощью сценариев установки/обновления sql. Эти файлы являются частью вашего хранилища и могут быть развернуты. Этот подход в основном обходит пользовательский интерфейс.

4.) Была проделана некоторая работа по попытке чтобы сделать часть этого рабочего процесса более приятной в таких проектах, как этот, но я думаю, что он еще не совсем готов к прайм-тайму.

Из всех этих вариантов я в настоящее время предпочитаю 3.)

 3
Author: Kristof at Fooman, 2013-10-22 16:29:44

Существует mageploy, который также может решить эту проблему.

 1
Author: Fabian Blechschmidt, 2015-02-22 10:14:45

Существуют инструменты для баз данных, такие как программное обеспечение Quest (теперь Dell) Жаба для MySQL. Этот инструмент управления базами данных имеет функции сравнения данных и структуры, которые вы можете использовать для просмотра изменений между двумя базами данных. Просто сохраните резервные копии (или git-коммиты) версий базы данных, которые вы хотите сравнить, и вуаля. Существует даже генератор сценариев для синхронизации этих двух функций.

 1
Author: Aaron Dake, 2015-12-02 16:34:17

Мы решили эту проблему, создав удаленную базу данных для локальных и промежуточных разработок для чтения/записи. Действительно помогает сэкономить время и эффективность; больше никакого клонирования, загрузка базы данных в среду каждого пользователя.

 1
Author: Nam Bui, 2015-12-02 19:09:05