Подтвердить что ты не робот

Рекомендации по развертыванию Magento

Я ищу настройку развертывания для сайта с настраиваемым Magento и задавался вопросом, как это делают другие люди.

Я буду настраивать среды dev, UAT и prod. Все файлы Magento будут находиться в источнике управления (SVN). На этом этапе я не вижу никаких требований к изменению БД, поэтому 3 базы данных будут поддерживаться вручную.

В частности,

  • Как вы применяете обновления Magento? (Индивидуально в каждом env или на dev, затем выкатитесь или просто сдадитесь при обновлении?)
  • Какие файлы/папки оставляют в покое в каждой среде (например, magento/app/etc/local.xml)
  • Вы запрещаете разработчикам редактировать определенные файлы/папки?
  • Вы ограничиваете разработчиков тем, чтобы редактировать определенные файлы/папки?
  • Как вы управляете изменениями базы данных?

Файлы/папки конструктора тем оформления

Дизайнеры могут ограничить редактирование следующих папок -

app/design/frontend/your_interface/your_theme/layout/
app/design/frontend/your_interface/your_theme/template/
app/design/frontend/your_interface/your_theme/locale/
skin/frontend/your_interface/your_theme/

Файлы/папки для разработчиков расширений

Разработчики расширений могут редактировать следующие папки/файлы -

/app/code/local
/app/etc/modules/<Namespace>_<Module>.xml

Управление средой базы данных

Поскольку URL базы базы хранения хранится в базе данных, вы не можете просто копировать базы данных между средами. Варианты включают -

4b9b3361

Ответ 1

Я рекомендую использовать git поверх SVN. Более легкое разветвление и слияние означает, что все эти точки будут более плавно для вас.

Применение обновлений: Сделайте это в dev. Создайте ветку (это где git действительно сияет), применяйте файлы исправлений или даже лучше, распакуйте новую версию Magento и укажите ее в свою старую базу данных. Пока нет расширений. Откройте администратора в новой установке Magento, надеясь на лучшее. Модификация между младшими версиями, вероятно, не будет проблемой. Вероятно, вам придется переиндексировать после установки нового материала. Сделайте фиксацию, как только это будет стабильно, затем постепенно добавьте в ветку свои расширения и темы, внесите какие-либо корректировки кода, а затем совершите фиксацию после каждого шага, доказывая стабильность.

Файлы, зависящие от среды:.htaccess и приложение /etc/local.xml. Я делаю отдельную версию для каждого: local.dev.xml, htaccess-dev local.staging.xml, htaccess-staging local.production.xml, htaccess-production

... и затем создайте для них программные ссылки для каждой среды:

ln -s htaccess-dev .htaccess
cd app/etc/
ln -s local.dev.xml local.xml

и т.д.

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

Управление изменениями базы данных. Это самая сложная часть. Мы просто используем mysqldump с производства и имеем готовые файлы "env-setup.sql" для каждой среды. Что-то вроде этого (ваши идентификаторы могут отличаться):

UPDATE core_config_data SET value='http://magento.dev/' WHERE config_id IN (3,4);

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

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

Вы можете получить данные CMS (страницы и статические блоки) из базы данных, сбросив и загрузив только таблицы cms_ * из любой среды разработки.

Удачи!

Ответ 2

Я использую те же самые лучшие практики, что и для любого веб-приложения при разработке magento. Я также религиозно избегаю внесения каких-либо изменений в основные файлы (многие документы в magento wiki просят изменить файлы ядра).

Ответ 3

Я использую git для управления всеми моими проектами и развертываниями Magento. Намного проще объединить новые версии, особенно если вы используете зеркало Magento, которое я поддерживаю на github. (GitHub Magento Mirror)

Что касается конкретного вопроса о том, где базовый url хранится в БД, попробуйте следующее:

SELECT * FROM core_config_data WHERE path = "web/secure/base_url" OR path = "web/unsecure/base_url";

Ответ 5

После большого количества проб и ошибок мы придумали подходящий нам рабочий процесс:

http://www.dhmedia.com.au/blog/perfect-magento-workflow-using-git

Включает в себя управление базой данных, весь код под управлением источника (с Git), развертывания, сайты для создания и разработки, несколько разработчиков, несколько сред и т.д.

Надеюсь, это поможет кому-то!