DotEnv 不会在 database.yml 中加载值



我已经安装了dotenv gem

gem 'dotenv-rails', require: 'dotenv/rails-now'

我用一些键=值创建.env文件

现在我想在 config/database.yml 文件中使用 .env 中的值。

default: &default
adapter: mysql2
encoding: utf8
pool:  5
host: localhost
port: 3306
socket: /var/run/mysqld/mysqld.sock
development:
<<: *default
database: wallet_development
username: <%= ENV['WALLET_DATABASE_DEVELOPMENT_USER] %>
password: <%= ENV['WALLET_DATABASE_DEVELOPMENT_PASSWORD'] %>

当我运行 db:create 时,出现错误

rake aborted!
SyntaxError: (erb):24: syntax error, unexpected tCONSTANT, expecting ']'
...T_DATABASE_DEVELOPMENT_PASSWORD'] ).to_s); _erbout.<< "nn#...
...~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(erb):32: syntax error, unexpected tCONSTANT, expecting ')'
... ENV['WALLET_DATABASE_TEST_USER'] ).to_s); _erbout.<< "n  p...
...      ^~~~~~~~~~~~~~~~~~~~~~~~~
(erb):33: syntax error, unexpected tCONSTANT, expecting ')'
...['WALLET_DATABASE_TEST_PASSWORD'] ).to_s); _erbout.<< "nn#...
...  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(erb):52: syntax error, unexpected tCONSTANT, expecting ')'
... _erbout.<<(( ENV['DATABASE_URL'] ).to_s); _erbout.<< "n#n...
...                   ^~~~~~~~~~~~
(erb):57: syntax error, unexpected tCONSTANT, expecting ')'
...WALLET_DATABASE_PRODUCTION_USER'] ).to_s); _erbout.<< "n  p...
...^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(erb):58: syntax error, unexpected tCONSTANT, expecting ')'
...ET_DATABASE_PRODUCTION_PASSWORD'] ).to_s); _erbout.<< "n".f...
...~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(erb):59: unterminated string meets end of file
; _erbout
^
(erb):59: syntax error, unexpected end-of-input, expecting ')'
; _erbout
^
/home/kru0096/.rvm/gems/ruby-2.4.1/gems/railties-5.2.1/lib/rails/application/configuration.rb:172:in `database_configuration'
/home/kru0096/.rvm/gems/ruby-2.4.1/gems/activerecord-5.2.1/lib/active_record/railtie.rb:39:in `block (3 levels) in <class:Railtie>'
/home/kru0096/.rvm/gems/ruby-2.4.1/gems/rake-12.3.1/exe/rake:27:in `<top (required)>'
Tasks: TOP => db:create => db:load_config
(See full trace by running task with --trace)

我做错了什么?

您缺少一个勾号 ':ENV['WALLET_DATABASE_DEVELOPMENT_USER]应该ENV['WALLET_DATABASE_DEVELOPMENT_USER'].

最新更新