Приложение rails3 ENV не распознается как производство - PullRequest
3 голосов
/ 11 апреля 2011

Я установил свое приложение rails на своем VPS на линоде, phusion passenger установлен и работает, как и mysql (я знаю это, потому что мой друг в настоящее время запускает на нем 2 производственных приложения с такой же настройкой).VPS работает под управлением Ubuntu 10.10, и я использую apache2 с пассажирским.

Я сделал SFTP-приложение к серверу, обновил комплект, настроил мой виртуальный хост и указал RailsEnv для работы, и пути все точны.

Затем я перезапустил сервер (с правами суперпользователя) с помощью apachectl -k restart попытался разгрести db: migrate, но он ничего не сделал, поэтому я решил, что это произошло из-за того, что среда не изменилась, чтоэто именно то, что случилось.Если я зайду в консоль rails и наберу Rails.env, это даст мне разработку.

Понятия не имею, почему, я сделал все, что должно было запустить его в производство?Кто-нибудь знает, что я, возможно, пропустил?Есть ли где-то в приложении, где я должен что-то изменить, чтобы сказать производственную среду?Я думал, что это должно быть сделано только в рельсах 2.x

Заранее спасибо за любую помощь.

Ответы [ 3 ]

16 голосов
/ 11 апреля 2011

Параметр RailsEnv предназначен только для пассажиров. Это не влияет на команды, которые вы вводите в оболочке.

Используйте

RAILS_ENV=production rake db:migrate

и

RAILS_ENV=production rails console

Или установите для переменной среды RAILS_ENV в вашей оболочке входа значение production, чтобы вам не приходилось добавлять RAILS_ENV=production к командам, которые вы вводите:

export RAILS_ENV=production

(точная команда может отличаться в зависимости от того, какую оболочку вы используете; вышеприведенное работает в bash)

1 голос
/ 11 апреля 2011

Вы были на правильном пути; все, что вам нужно сделать, чтобы фактически запустить приложение в рабочем режиме, - это установить RailsEnv, как и вы, при условии, что вы запускаете приложение с помощью Passenger. Однако для запуска миграций базы данных вы должны указать Rails, в какой среде запускать.

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

Чтобы запустить миграцию в производственной среде, вам нужно выполнить команду следующим образом:

RAILS_ENV=production rake db:migrate

И чтобы запустить консоль в рабочем режиме, вам нужно запустить консоль с помощью команды:

rails console production
0 голосов
/ 16 августа 2013

Если вы хотите, чтобы эта переменная была установлена ​​автоматически, поместите RAILS_ENV=production в конец файла ~/.bashrc. (Это работает только с терминалом bash)

Затем откройте новый терминал или перезапустите ssh-соединение.

...