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