Rails を起動したら Cannot load `Rails.application.database_configuration`: (NoMethodError) が出てハマった

結論(の一つ)

database.yml の中の記述で、コメントの中に erb の書式で記述しているものがあり、さらにその返り値が例外になるものがあるとき標題のエラーが出る。

具体例

OK
development: # 12345
  adapter: sqlite3 # 67890
  database: db/development.sqlite3 # abcde
  pool: 5 # fghij
  timeout: 5000 # klmno
NG
development: # <% foobar %>
  adapter: sqlite3
  database: db/development.sqlite3
  pool: 5
  timeout: 5000

補足

database.yml の中に erb の書式が使えることから当然っちゃあ当然なのですが、結構ハマってしまった。

もちろんコメント中でなくても例外を返す記述があれば同じようにエラーになりますが、コメントの中というのが私には盲点だったので書きました*1

*1:js.erb などでも同じですね

Powered by はてなブログ