2016-02-29 4 views
6

Я использую старое приложение Rails. Никто не трогал его через год. Последний разработчик ушел в апреле 2015 года, и у меня нет возможности связаться с ним. У меня есть ssh-доступ к серверу, и у меня есть доступ к репозиторию Github.Как увидеть ENV vars в приложении Rails?

Я не знаю ни одного из имен пользователей/паролей.

Если я SSH к серверу и I кот database.yml файл, я вижу такие вещи, как:

staging: 
     adapter: mysql2 
     encoding: utf8 
     pool: 5 
     socket: /var/lib/mysql/mysql.sock 
     database: o_wawa_stage 
     username: wawa_stage 
     password: <%= ENV['STAGE_DATABASE_PASSWORD'] %> 
     host: access.dmedia.com 

Если я управляю «printenv» команду, то я не вижу какой-либо из этих Варс. Я предполагаю, что они загружены только средой Rails.

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

Если я пытаюсь запустить «рельсы консоли» я получаю:

Rails Error: Unable to access log file. Please ensure that /var/www/haha/production/releases/20150118213616/log/development.log exists and is writable (ie, make it writable for user and group: chmod 0664 /var/www/haha/production/releases/20150118213616/log/development.log). The log level has been raised to WARN and the output directed to STDERR until the problem is fixed. 

Я не Sudo на этом поле, поэтому я не могу решить эту ошибку.

ответ

5

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

RAILS_ENV=staging rails console 

Это должно помочь вам. Как только вы находитесь, вы можете просто получить доступ к переменной ENV непосредственно.

2.2.2 (main):0 > ENV 

И это выведет переменные окружения для вас. Обратите внимание: ваше приглашение может выглядеть по-другому. Если вы хотите получить доступ к определенному значению, например к паролю базы данных, вы можете:

2.2.2 (main):0 > ENV['STAGE_DATABASE_PASSWORD'] 
+0

Есть ли способ, которым я могу сказать «rails console», где найти журнал? Журнал находится в разделе «/ var/www/wawa/production/shared/log», но консоль rails ищет его в «/ var/www/wawa/production/log», и он выдает ошибку, потому что не может найти ее , – lorm

+0

Загляните внутрь config/application.rb и config/enivornments/production.rb для любых строк, которые выглядят как 'config.logger'.Обычно он находится в одном из двух файлов, где конфигурация протоколирования перезаписывается. http://guides.rubyonrails.org/configuring.html также может быть полезно. –

0

YourApp/конфигурации/env.yml или application.yml и т.д ...

Посмотрите на код, который выглядит как

AWS_KEY_ID: blahblah23rkjewfojerflbah 
AWS_SECRET_KEY_ID: blahblah2394082fkwejfoblah 
+0

Это было бы правдой, если бы мы использовали драгоценный камень Фигаро, да? – lorm

+0

Это ничего не возвращает: найти. -name application.yml – lorm

+0

Это ничего не возвращает: найти. -name env.yml – lorm

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