Ситуация: есть копия рабочего сайта, на который добавляется, изменяется, удаляется функционал, настраиваются новые возможности, вообщем классическая рутина. В это же время рабочий сайт живет своей жизнью - добавляется контент, регистрируются юзеры и т.д.
В какой то момент надо, по возможности просто, внести изменения на рабочий сайт. backup_migrate тут далеко не всегда может помочь, так как легко может пропасть часть контента, да и не только. Вручную повторять весь процесс может занять слишком много времени, и не факт что гдето чего то не пропустишь. Каждую настройку запоминать и переносить - не продуктивно. А изменения надо вносить регулярно.
Вопрос к залу - как? Как вносить дельту изменений с копии на сайт.
UPD: как по заказу на хабре появилась статья на эту тему http://habrahabr.ru/blogs/drupal/76243/ . Метод мною пока не испробован, ищу дальше
UPD2: возможно подойдет модуль http://drupal.org/project/dbscripts . для d6 есть dev версия. Функционал пока не испытал
Комментарии
а если просто дозалить новые модули на сайт и новые таблицы в базу? а как в мускуле правильно обновить таблицы? ну чтобы добавить недостающие записи, не трогая и не меняя существующие?
Как-то сложновато. Хотелось бы попроще.
Просто модули добавить - это мелочь, а внести нужные настройки для всех модулей, типов, настроить права и т.д. - это сложно
взять два дампа баз - боевую и тестовую. Прогнать diff, потом из получившегося патча убрать все минусы, наложить патч на дамп боевой базы, залить дамп на сайт.
Не с друпалом и вообще не на сайте, но так делал.
это общий случай, классический, но в данном контексте не пойдет - в случае изменения типов материалов, да и даже переименовке поля, начинаются большие проблемы.
а где хранятся настройки модулей? где содержатся данные о всех тех отмеченных галочках, настройках в админке модуля?
в базе в разных местах. кроме того могут и структуры таблиц поменяться, и часть контента проапдейтиться. вообщем, вероятность сделать diff дампов сводится к нулю
когда сами решали эту задачу, пришли к выводу, что никак ((
слишком много взаимосвязей, зачастую неявных.
если бы нашелся спосособ, было бы очень полезно.
Все решается очень просто:
1) на devel все делаем не мышкой, а кодом в install-файле модлуя
2) синхронизируем файлы модуля с product
3) запускаем update.php на product
Плюсы метода:
1) апдейт проходит без ошибок (если конечно вы в коде не накосячили)
2) изменения можно вносить в систему управления версиями
3) это работает на ура с сайтами, где БД размером больше ГБ
Минусы:
1) немного трудоемко
способ интересный, но настроить связки cck+views+еще десяток модулей сделать кодом - процесс не то что трудоемкий, а нереальный для большинства. и по времени нерентабельно
Согласен, предложенный мною метод, наиболее оптимален для серьезных проэктов.
P.S.
Делать связки CCK+Views довольно просто, вот взгляните, например, на install_profile_api.
ок. если я убеждаю заказчиков, что это нужно делать, к тебе можно будет обратиться за помощью? )
и сколько то будет стоить, порядок цен?
Ко мне обратиться можно, определенно
.
.
Я фрилансом не занимаюсь, но иногда бывает свободное время и желание что-то делать
Раскладки цен у меня нет. Еслу и вас будут предложения - пишите, возможно что-то придумаем.
Модуль Features поможет перенести большинство изменений