Развертывание изменений на живом сайте Drupal - PullRequest
1 голос
/ 16 июля 2010

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

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

Есть идеи?

1 Ответ

5 голосов
/ 16 июля 2010

Это слабость. 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 (и использовать обновления ловушек). Но это действительно подходит только для корпоративных сайтов, где у вас есть большие ресурсы для разработчиков. Это может показаться странным предложением, но может полностью свести на нет всю эту проблему.

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

...