Обновление сайта с активной регистрацией пользователя
Я хочу взять на себя проект, но я не уверен, как справиться с процессом обновления.
Обычно, когда вас просят обновить сайт, вы создаете резервную копию базы данных и файлов сайта, а затем делаете обновления локально или на сервере разработки. Затем, когда обновления закончены, вы запускаете их.
Моя проблема в том, что сайт, над которым я буду работать, регистрирует новых участников каждый день, ежедневно публикует сообщения в блогах и каждый день получает новые комментарии к этим сообщениям. Если бы я должен был загрузить сайт в понедельник, обновить его в тестовой среде, а затем отправить эти изменения в пятницу, все подписавшиеся участники и записи в блоге, написанные в течение недели, будут перезаписаны.
Так каков наилучший способ сделать это? Как обновить / добавить функции на сайт, не теряя данные, полученные на работающем сайте во время разработки? Конечно, это должно быть возможно, поскольку сайты с большим трафиком, такие как TechCrunch и Gizmodo, постоянно обновляют сайты без потери данных.
2 ответа
Это зависит от того, какие изменения вы делаете. Это изменения файла / шаблона или базы данных?
Если это просто изменения файлов, просто перетащите файлы и базу данных на локальный сервер, внесите изменения в свои файлы, а затем просто отправьте их (только файлы) на работающий сервер, когда закончите. Пока не произошло никаких изменений в базе данных, это будет работать.
Если есть изменения в БД, все становится немного сложнее. Вы в основном будете следовать тому же процессу, но запишите все изменения в БД, которые вы делаете на локальном сайте. когда все готово для отправки на работающий сервер, у вас нет другого выбора, кроме как отключить сайт для пользователей во время обновления.
Затем вы должны отправить все обновленные файлы на работающий сервер и отразить все изменения в БД, которые вы сделали на локальном сервере (установить / обновить плагины и т. Д.). Когда все это будет сделано и протестировано, вы сможете снова запустить сайт в сеть. Время простоя должно быть минимальным, если вы хорошо заметили изменения в БД.
Это зависит от возможности блокировать доступ для пользователей, но все же разрешать доступ для себя, но это стандартно для большинства CMS.
Кроме того, если вы этого еще не сделали, вы должны посмотреть, как интегрировать git в ваш рабочий процесс. Если изменения, которые вы будете вносить, займут значительное время, вам понадобится система, в которой вы сможете разветвлять свой код на новые версии, сохраняя при этом исходное состояние кода, которое находится на работающем сервере.
Таким образом, если есть срочное исправление, которое необходимо сделать с живым сайтом, пока вы находитесь в процессе разработки новых функций на местном уровне, вы можете переключиться обратно на свою основную / оригинальную ветку и внести изменения в код, который не включает в себя новые вещи, над которыми вы работали в другой ветке.
Ну, я сделал это только для небольших сайтов WordPress/ Drupal, но отсутствие "живой" версии не было проблемой для меня. У меня есть копия для разработки, сделайте тестирование изменений, которые я хочу, а затем выложите эти изменения на рабочий сайт на лету, отправив их обратно по FTP.
Вы собираетесь редактировать эти регистрации? Или вы просто настраиваете статические файлы?
В случае WordPress я тестирую плагин, а затем просто устанавливаю его на живой сайт. Обычно изменения, которые я делаю, включают плагины / модули и некоторые вещи PHP. Это, очевидно, не самое нюансированное решение, и мне интересно посмотреть, что думают более знающие люди.