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


17

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

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

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

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

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

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

Благодарю.


2
для конфигурации: github.com/punkstar/mageconfigsync
B00MER

Ответы:


3

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

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

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

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

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

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


Да, я тоже поддерживаю 3. Кто бы не Однако, поскольку 3 - единственный реальный вариант, и он пока не стабилен, я собираюсь обойти все предложения и просто провести тестирование с целью понимания того, как работает пользовательский интерфейс на локальном сервере, и выполнить весь каталог продуктов и продуктов и других обновлений непосредственно на работающем сервере, возможно, отключив его на некоторое время или даже лучше, просто стараясь сделать продукты активными именно тогда, когда они будут готовы, поскольку в любом случае мне придется быть осторожным, почему бы не быть осторожным в таким образом, который, вероятно, может нанести наименьший урон из 1 и 2 в любом случае. Спасибо
Джон Сондерсон

3.) является стабильным, воспроизводимым и основанным на файлах - недостатком является то, что для его настройки требуется больше работы.
Кристоф в Фуман

1

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


На данный момент никто в mageploy не обновил свой сайт. В нем все еще говорится, что это только для Magento 1.7.0.2
Макс.

1

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


1

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.