由于这个问题,我一直在拔头发:
当我在Mac上运行Rails应用程序时,似乎host
被误认为database name
,并且仅在开发环境中发生。
这是我的database.yml:
default: &default
adapter: postgresql
encoding: unicode
pool: 5
username: <%= ENV['DATABASE_USERNAME'] || 'admin' %>
password: <%= ENV['DATABASE_PASSWORD'] || 'password'%>
host: <%= ENV['DATABASE_URL'] || 'localhost'%>
development:
<<: *default
database: cid_dev
test:
<<: *default
database: cid_test
production:
<<: *default
database: cid_api
然后当我跑步时:
$ bundle exec rake db:create
它向我返回:
Database 'localhost' already exists
有人知道我的本地环境会发生什么吗? 仅供参考,我尝试过rbenv和rvm都存在相同的问题。
谢谢。
答案 0 :(得分:0)
我自己找到了答案。
使用DATABASE_URL
环境变量作为放置连接字符串的位置。因此,当我将数据库主机放入环境变量DATABASE_URL
中时,它将用作默认主机
因此,要解决该问题,我需要将DATABASE_URL
重命名为DATABASE_HOST
,这仍然是正确的选择。谢谢