私は古いRailsアプリを引き継いでいます。1年で誰もそれに触れていません。最後の開発者は2015年4月に去り、彼に連絡する方法がありません。私はsshアクセスを持っていますサーバー、そして私はGithubリポジトリにアクセスできます。
ユーザー名/パスワードがわかりません。
サーバーにsshしてdatabase.ymlファイルをcatすると、次のようになります。
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環境によってのみロードされると思います。
テンプレートを編集して一連の「put」ステートメントで値を吐き出すことができると思いますが、これを行うには、一般の人が見ることができるデータを印刷する以外に、もっと明白な方法が必要だと思いますか?
「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がないので、エラーに対処できません。
例が示すように、ステージング環境を想定しています。 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']
アプリディレクトリ内で、Rails Console:
Rails c
次にプロンプトで:
2.3.0 :001 > ENV
これにより、最後にエクスポートした環境のすべてのロード済み環境変数がリストされます。
申し訳ありませんが、これを投稿した後、著者はすでにRails console with errors ...を使用しようとしたことがわかりました...しかし、これは常に機能するはずです。printenvを要求したり、コンソール内の環境、あなたmustすべて大文字の「ENV」を使用
yourapp/config/env.ymlまたはapplication.ymlなど...
次のようなコードを探します
AWS_KEY_ID: blahblah23rkjewfojerflbah
AWS_SECRET_KEY_ID: blahblah2394082fkwejfoblah