【发布时间】:2015-10-11 05:33:18
【问题描述】:
我正在使用 MAC OS X 以及通过 Homebrew 安装的 postgresql。我正在使用 Rails 4.2.1 和 ruby 2.2.0 进行开发。与 postgresql 服务器的连接很好,但由于某种原因,每个应用程序都访问数据库“kstavrou”,这是我的系统用户名,作为开发数据库并创建由 database.yml 定义的其余部分。如果您有超过 1 个 rails 应用程序,那就很麻烦了。
rake db:创建输出:
Konstantinoss-MacBook-Pro:ecomm-intel kstavrou$ rake db:create kstavrou 已经存在 ecomm_intel_test 已经存在奇怪的是,如果我清空 database.yml 仍然可以很好地连接到 postgresql 并尝试再次创建执行所有迁移的数据库“kstavrou”,而不尝试创建测试数据库。 rake db:创建输出:
Konstantinoss-MacBook-Pro:ecomm-intel kstavrou$ rake db:create kstavrou 已经存在数据库.yml
default: &default
adapter: postgresql
host: localhost
encoding: utf8
username: pguser
password: 123456
pool: 5
production:
<<: *default
database: ecomm_intel_prod
development:
<<: *default
database: ecomm_intel_dev
test:
<<: *default
database: ecomm_intel_test
【问题讨论】:
-
首先,我会仔细检查以确保您的 YML 格式正确。您可以将其粘贴到here 并确认它已按预期进行解析。否则,是否定义了
ENV['DATABASE_URL']?如果是这样,它将覆盖您的database.yml配置。查看Rails docs 了解更多信息(第 3.13 节)。 -
您说得对!这是在我的 bash_profile 中(我猜来自一些安装脚本):export DATABASE_URL=postgres:///$(whoami)。没想到数据库url会影响配置!
-
很高兴能帮上忙!
标签: ruby-on-rails postgresql ruby-on-rails-4 rails-postgresql