Развертывание изменений на живом сайте Drupal

Мне очень нравится Drupal как-то. Но что меня больше всего беспокоит, так это то, что я не могу найти четкий способ развертывания. Drupal хранит много данных в базе данных (представления, cck, рабочий процесс, триггер и т. Д.), Которые необходимо обновить.

Я видел несколько модулей, которые можно использовать для этой задачи (например, функции), и я не уверен, что их достаточно. Тем не менее, они предназначены только для drupal6, и в настоящее время я должен работать на сайте drupal5, где обновление пока не доступно.

Есть идеи?

1 ответ

Решение

Это слабость. Drupal не имеет встроенных инструментов разработчика, которые делают разработку и развертывание такими же простыми, как Rails (например). Одной из проблем является то, что Drupal изначально не знает о своей среде. Во-вторых, существует слишком много различных методов и модулей, которые требуют особого внимания. Это может стать очень запутанным. Но вещи становятся лучше с помощью Drush и Drush Make.

Здесь я предполагаю, что у вас есть среда разработки на вашем локальном компьютере и живой или промежуточный сервер, на который вы загружаете.

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

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

Загрузить код из вашего локального репозитория или сайта можно несколькими способами. Если вы используете систему контроля версий, такую ​​как git, вы можете зафиксировать на локальном компьютере и снова проверить на промежуточном сервере. Существуют также специальные инструменты развертывания, такие как capistrano, на которые стоит обратить внимание. (если вы уже знаете этот материал, это может принести пользу другим читателям). Если вы используете FTP, вы должны попробовать что-то другое.

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

Вы также можете экспортировать резервную копию представлений на свой сервер либо в свой код, либо импортировать их на действующий сайт. Здесь можно найти способ развернуть изменения cck: http://www.tinpixel.com/node/53 все работает нормально, но не может по-настоящему управлять такими изменениями, как откаты. (Уважение к парню, который написал это)

Вы также можете использовать hook_updateN для захвата изменений, а затем запустить update.php, чтобы применить их. Я работал на d5-сайте с десятками разработчиков, и это был единственный способ продвинуться вперед. Это может быть хорошим вариантом, если ваш сайт работает или если вам нужны все изменения схемы базы данных, записанные в системе контроля версий (чтобы вы могли выполнить откат).

Также: взгляните на drush и drush make. Эти инструменты могут быть очень полезны. Я не могу вспомнить, сколько поддержки для d5.

Последний способ справиться с этим - не использовать cck или views (и использовать обновления hook). Но это действительно подходит только для корпоративных сайтов, где у вас есть большие ресурсы для разработчиков. Это может показаться странным предложением, но может полностью свести на нет всю эту проблему.

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

Другие вопросы по тегам