Обновление сайта с активной регистрацией пользователей - PullRequest
0 голосов
/ 15 декабря 2011

Я хочу заняться проектом, но я не уверен, как справиться с процессом обновления.

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

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

Так каков наилучший способ сделать это? Как обновить / добавить функции на сайт без потери данных, полученных на живом сайте во время разработки? Конечно, это должно быть возможно, поскольку сайты с большим трафиком, такие как TechCrunch и Gizmodo, постоянно обновляют сайты без потери данных.

Ответы [ 2 ]

4 голосов
/ 17 августа 2012

Это зависит от того, какие изменения вы делаете. Это изменения файла / шаблона или базы данных?

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

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

Затем вы должны отправить все обновленные файлы на работающий сервер и отразить все изменения в БД, которые вы сделали на локальном сервере (установить / обновить плагины и т. Д.). Когда все это будет сделано и протестировано, вы сможете снова запустить сайт в сеть. Время простоя должно быть минимальным, если вы хорошо заметили изменения в БД.

Это зависит от возможности блокировать доступ пользователям, но все же разрешать доступ для себя, но это стандартно для большинства CMS.

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

Таким образом, если есть срочное исправление, которое необходимо сделать с живым сайтом, в то время как вы находитесь в процессе разработки новых функций локально, вы можете переключиться обратно на свою основную / оригинальную ветку и внести изменения в код, который не делает включите любой новый материал, над которым вы работали в другой ветке.

0 голосов
/ 15 декабря 2011

Ну, я сделал это только для небольших сайтов WordPress / Drupal, но отсутствие «живой» версии не было проблемой для меня.У меня есть копия для разработки, сделайте тестирование изменений, которые я хочу, а затем выложите эти изменения на рабочий сайт на лету, отправив их обратно по FTP.

Вы собираетесь редактировать эти регистрации?Или вы просто настраиваете статические файлы?

В случае WordPress я тестирую плагин, а затем просто устанавливаю его на живой сайт.Обычно изменения, которые я делаю, включают в себя плагины / модули и некоторые вещи PHP.Это, очевидно, не самое нюансированное решение, и мне интересно посмотреть, что думают более знающие люди.

...