в рельсах какая разница между режимом разработки и режимом производства? - PullRequest
6 голосов
/ 07 июня 2010

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

Будет ли риск появления ошибок в этом процессе?

Ответы [ 3 ]

6 голосов
/ 07 июня 2010

Разница между двумя средами. В Rails есть несколько окружений. У каждого своя конфигурация базы данных и опции Rails.

Вы можете использовать переменную Rails.env, чтобы внести некоторые изменения в конкретную среду.

По умолчанию среда разработки не имеет всего кэша и активирует автоматическую перезагрузку. Производственная среда со всем кешем.

Но если вы хотите, вы можете создать производственную среду, например, среду разработки или разработки, например, производство.

Вы также можете добавить новую специфическую среду.

4 голосов
/ 07 июня 2010

Отрывок из Agile Development с использованием Rails book

Упрощение разработки

Возможно, вы заметили кое-что о разработке, которую мы делали до сих пор,Поскольку мы добавляли код в наше приложение, нам не пришлось перезапускать работающее приложение.Это было счастливо пыхтя на заднем плане.И все же каждое изменение, которое мы делаем, доступно, когда мы обращаемся к приложению через браузер.Что дает?

Оказывается, диспетчер Rails довольно умен.В режиме разработки (в отличие от тестирования или производства) он автоматически перезагружает исходные файлы приложения при поступлении нового запроса.Таким образом, когда мы редактируем наше приложение, диспетчер следит за тем, чтобы оно выполняло самые последние изменения.Это отлично подходит для разработки.

Однако такая гибкость обходится дорого - она ​​вызывает короткую паузу после ввода URL-адреса, прежде чем приложение ответит.Это вызвано тем, что диспетчер перезагружает вещи.Для разработки это цена, которую стоит заплатить, но в производстве это было бы неприемлемо.Из-за этого эта функция отключена для производственного развертывания.

1 голос
/ 07 июня 2010

По сути, нет никакой разницы между средами Rails. Среда - это просто константа, которая устанавливается, когда приложение Rails запускается и на которую часто ссылаются в процессе загрузки и которая доступна для кода приложения.

Например, константа определяет, какую конфигурацию базы данных использовать для соединения и какой инициализатор среды выполнить (например, config / environment / development.rb ) во время загрузки.

Средами по умолчанию, которые существуют в приложении rails, являются:

  • развитие
  • тест
  • Производство

Некоторые параметры конфигурации различаются в средах Rails по умолчанию, но среды будут идентичны, если параметры конфигурации в соответствующих файлах config / сред / # {environment} идентичны. Об этом свидетельствует тот факт, что дополнительные среды могут быть созданы путем добавления конфигурации соединения в config / database.yml и нового файла среды в config / сред

...