Всем привет, подскажите по переносу сайта с хостинга на хостинг при помощи git composer и drush.
В общем, надоело перекидывать сайты при помощи архивов решил раз и навсегда с этим разобраться))
Шаги действия:
1. Сделал Экспорт Конфигов drush cex
2. Сделал репозиторий со стандартным Drupal набором (git push)
3. Сделал дамп базы данных
4. на другом сервере git pull
5. composer install
6. закачал дамп базы
7. drush cim - сообщение все конфиги и так настроены
8. Открываю сайт на новом сервере и вуаля, не один модуль не включен, я так понимаю конфиги не применились?
Комментарии
Во-первых экспорт и импорт конфигов в описанном сценарии бесполезен. Вся информация, в том числе и конфиги, хранится в базе данных. Так что проверяйте, что дамп базы создан корректно и потом корректно импортирован в новую базу.
Во-вторых, на новом сервере должен быть скорректирован файл settings.php чтобы корректно указать бд/адрес бд/юзверя/пароль.
В-третьих, composer install тоже не имеет смысла, если вся кодовая база сайта в гите.
Да все стандартно создано как и с архивами, settings.php скопирован со старого сервера
UPD. ну в смысле mysqldump затем mysql
Ну на новом то сервере база данных небось имеет другое имя/юзверя/пароль, может даже адрес другой.
В общем, в любом случае, если вы корректно сделаете дамп базы и развернете его на новом сервере, то все содержимое и настройки друпала будут работать, так как друпал хранит абсолютно все (кроме закачиваемых на сайт картинок и прочих файлов) в БД.
Да, в дополнение: переведите начальный сайт в режим обслуживания прежде чем сделать дамп базы.
Извиняюсь тупанул)) библиотеки не скачал) они же в гитигноре, из-за этого все криво смотрелось) Не разобравшись отчаиваться начал)
Еще вопрос, импорт конфигов делает записи в базу данных?
Т.е. я к чему, на дэве внес изменения добавил полей новых сущностей и потом гитом залил на прод сделал драш ким и все работает?
И еще, а если я новых материалов добавил драш их тоже создаст?
Я про то что ладно с прода базу забрать, а на прод же не запишешь, там будет создано куча материалов во время разработки
Импорт конфигов сравнивает содержимое конфигов с записями в БД. Если находятся отличия- то выводится информация о том, что импорт конфигов приведет к созданию/обновлению/удалению указанного конфига в БД.
Конфиги не содержат ноды с контентом и содержимое блоков например, только их техническое описание (поля, настройки и т.п.)
Конфиги нужны не для переноса контента, а для переноса настроек сайта без необходимости заменять базу данных новым дампом. Это полезно при разработке. Например, вы добавили на девелоперском сервере какое-то новое поле для типа материала. Без конфигов, чтобы воссоздать его на боевом сервере вам надо было или вручную повторить все те же манипуляции или переносить дамп базы. С конфигами вы их просто импортируете и поле с настройками будет перенесено, но не контент.
Вообще, для самообразования просто зайдите в директорию с конфигами и пооткрывайте их, почитайте их содержимое, многое станет более понятно.
Думаю можно обойтись без drush cex/cim
Если сайт собран Композером переносим файлы:
там не должно быть:
web/modules/contrib/ - тоже не должно переноситься или идти в репозиторий.
Как переносите через Гит или (прости Гандос) ФТП не важно. Если через Гит - вы конечно же знаете как прописать gitignor.
У вас так?
Всегда и делал руками, но бывает надо функционал добавить, а в нем новые модули их настройки, новые сущности кучи полей и т.д. Файлы то перекинуть не проблема, вот с базой беда, контент то постоянно создаётся на проде. Вот и мучаю гит и драш)
Если вы переносите сайт с хостинга на хостинг - переносите БД. Если вам нужно вносить изменения в существующий сайт - делайте экспорт конфигураций на дев сайте и импорт на прод-е.
Пред тем как делать импорт конфигураций на проде нужно:
Извините, если написал то что и так знаете. Может не понимаю в чем проблема.
А кстати как грамотно переносить и вообще менеджить изменения этих самых картинок, которые не в базе, но являются неотъемлемой частью контента? Не в гит же их засовывать (у меня их 20 гигабайт)? Или в гит?
В гите хранить не надо, он не для того и в целом плохо подходит для хранения медиа файлов. Я только тему оформления в нем храню, там немного картинок, зато обновлять удобно.
Директорию с файлами лучше синхронизировать rsync-ом, но нужно хорошо понимать что делаешь, какие изменения были на проде, какие на деве, иначе потом будешь рвать волосы из всяких мест. Так что крайне рекомендую делать полный бэкап перед любыми контент заливами с дев сервера.
В идеале вообще не должно быть залива контента с дева если прод уже работает, люди что-то делают на сайте. Т.е. на деве разрабатывается функционал, отправляется на прод в виде конфигов и модулей, а там уже происходит импорт какого-то контента если нужно.