読者です 読者をやめる 読者になる 読者になる

heroku MySQL Missing `secret_key_base` for 'production' environment, set this value in `config/secrets.yml`

herokuにrailsアプリをデプロイさせようとして上手くいかないのでメモ.
今回はDBにMySQLを使おうとしている.

手順は以下を参考にした.
ClearDB MySQL Database | Heroku Dev Center

そしてherokuの環境変数にDATABASE_URLとSECRET_KEY_BASEがセットされている状態である.
f:id:alice345:20140528224910p:plain

この状態で

heroku run rake db:migrate

そして

heroku open

すると
f:id:alice345:20140528225054p:plain
こんなエラーが.「set this value in `config/secrets.yml`」とエラー文中にはあるが,config/secrets.ymlにはこのように記述してある

# Do not keep production secrets in the repository,
# instead read values from the environment.

そのため私はsecrets.ymlはバージョン管理には含めずherokuにもpushしていない(mysqlのパスワードなどをsecrets.ymlで管理しているため,バージョン管理には含めたくない)

1時間ほど悩んで結局できてないので今日のところは諦める...

  • DATABASE_URLやCLEARDB_DATABASE_URLのmysql2の部分以外変更していないが,ここでユーザー名やパスワードやDB名をdatabase.ymlにあるものと同じに変更する必要がある?(この場合パスワードはどうするんだ...)
  • 本番環境ではユーザーとかどうやって作るんだ?上記の部分で設定すれば勝手に作ってくれるものなのか...?

後日このあたりを確認してみよう

P.S
以前Sinatraで作ったアプリをRailsで作りなおしてみた(ちゃんとしたRailsっぽい書き方じゃないかもしれないけれども...寺子屋いったからなんとかして教えてもらったことを実践してみたかった...)
alice345/DentooTanE · GitHub
Rails寺子屋 第4回 - まちゅダイアリー(2014-05-24)
とりあえずSinatraのときと同じ動きをするようになったので,なんとかデプロイさせたい.