Внесение изменений в действующий сайт (Codeigniter, но не только для него) - PullRequest
8 голосов
/ 07 июня 2011

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

Или вы копируете базу данных и файлы на локальный сервер (MAMP / WAMP / XAMMP) и работаете с ним там, если он работает, обновите действующий сайт с изменениями.Для этого второго метода, есть ли способ проверить, какие файлы были изменены, и только загрузить их?Что если он работает на локальном сервере, но после обновления действующего сайта он не работает?

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

Ответы [ 3 ]

8 голосов
/ 07 июня 2011

Не работайте напрямую с живым сайтом.Вместо этого создайте среду разработки (например, на вашей машине, например, vmware или virtualbox) и клонируйте живую среду.Получите ваш код в управлении версиями (я повторю еще раз: ПОЛУЧИТЕ КОД В УПРАВЛЕНИИ ВЕРСИЯМИ ), займитесь разработкой на машине разработчика, а не веткой dev в управлении версиями.После того, как вы закончите тестирование и будете довольны изменениями, зафиксируйте их в «развертываниях» или «живых» ветвях, а затем разверните их на работающем сайте.Обязательно сделайте резервную копию базы данных, прежде чем развернуть новый код.

Редактировать : используйте символические ссылки для размещения новой базы кода на работающем сайте.Если это не работает, просто переключите его обратно в старый каталог.Экономит много времени!

5 голосов
/ 07 июня 2011
  1. Читайте о контроле версий (svn, git и др.).
  2. Никогда не работайте на работающем сайте, предпочтительно на другом сервере (для предотвращения сбоев while(1){..} и т. Д.), Но на том же сервере, по крайней мере, в другом documentroot / домене, предпочтительно с ограниченным доступом только к вашему IP.
  3. Обычно я только копирую определения таблиц (mysqldump -t хорошо для этого) и в целом имею другую базу данных. Если вам нужны самые последние и самые лучшие данные, вы можете скопировать свою основную базу данных в базу тестовых данных, которая также дает Преимущество дешевой резервной копии, если у вас ее еще нет.
  4. Я обычно устанавливаю переключатель в конфигурации Apache / Vhost (SetEnv DEV=1), чтобы в коде я мог использовать if(getenv('DEV')==1), чтобы проверить, могу ли я просто сбросить переменные в условиях ошибки, и которые ограничивают возможность случайной фиксации / загрузка кода с «переключателем разработки» все еще включена случайно.
2 голосов
/ 07 июня 2011

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

Однако это не означает, что работа в производственной среде полностью запрещена. Ваше решение должно основываться на нескольких факторах:

  • Является ли работа вашего сайта критически важной для вашего бизнеса?

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

  • Внесут ли изменения, которые вы собираетесь внести, большое влияние на остальную часть сайта?

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

  • Сколько времени потребуется для реализации ваших изменений?

Если вы не можете гарантировать, что ваши изменения не займут больше 15-20 минут, выполняйте свою работу в тестовой среде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...