2011-12-15 2 views
0

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

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

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

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

ответ

4

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

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

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

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

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

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

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

0

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

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

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

Смежные вопросы