Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rake任务似乎忽略了database.yml配置_Ruby On Rails_Postgresql_Ruby On Rails 4_Rails Postgresql - Fatal编程技术网

Ruby on rails Rake任务似乎忽略了database.yml配置

Ruby on rails Rake任务似乎忽略了database.yml配置,ruby-on-rails,postgresql,ruby-on-rails-4,rails-postgresql,Ruby On Rails,Postgresql,Ruby On Rails 4,Rails Postgresql,我正在使用MAC OS X以及通过自制安装的postgresql。我正在使用Rails 4.2.1和ruby 2.2.0进行开发。与postgresql server的连接很好,但出于某种原因,每个应用程序都会访问数据库“kstavrou”,这是我的系统用户名,作为开发数据库,并创建database.yml定义的其余数据库。如果你有一个以上的rails应用程序,那就很麻烦了 rake db:创建输出: Konstantinoss-MacBook-Pro:ecomm-intel kstavrou$

我正在使用MAC OS X以及通过自制安装的postgresql。我正在使用Rails 4.2.1和ruby 2.2.0进行开发。与postgresql server的连接很好,但出于某种原因,每个应用程序都会访问数据库“kstavrou”,这是我的系统用户名,作为开发数据库,并创建database.yml定义的其余数据库。如果你有一个以上的rails应用程序,那就很麻烦了

rake db:创建输出:

Konstantinoss-MacBook-Pro:ecomm-intel kstavrou$ rake db:create kstavrou already exists ecomm_intel_test already exists Konstantinoss-MacBook-Pro:ecomm-intel kstavrou$ rake db:create kstavrou already exists Konstantinoss MacBook Pro:ecomm英特尔kstavrou$rake db:create kstavrou已经存在 ecomm_英特尔_测试已存在 奇怪的是,如果我清空database.yml,仍然可以很好地连接到postgresql,并尝试再次创建数据库“kstavrou”,在那里执行所有迁移,而不尝试创建测试数据库。 rake db:创建输出:

Konstantinoss-MacBook-Pro:ecomm-intel kstavrou$ rake db:create kstavrou already exists ecomm_intel_test already exists Konstantinoss-MacBook-Pro:ecomm-intel kstavrou$ rake db:create kstavrou already exists Konstantinoss MacBook Pro:ecomm英特尔kstavrou$rake db:create kstavrou已经存在 database.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

default:&default
适配器:postgresql
主机:本地主机
编码:utf8
用户名:pguser
密码:123456
游泳池:5
制作:

问题是ENV['DATABASE_URL']是(通过一些安装脚本)设置的,所以它覆盖了DATABASE.yml配置,正如所指出的,所以我只是删除了它

`export DATABASE_URL=postgres:///$(whoami)` `导出数据库\u URL=postgres://$(whoami)`
首先,我会再次检查以确保您的YML格式正确。您可以粘贴它并确认它已按预期进行解析。否则,是否定义了
ENV['DATABASE\u URL']
?如果是这样,它将覆盖您的
数据库.yml
配置。有关这方面的更多信息,请查看(第3.13节)。您说得对!这是在我的bash_配置文件中(我猜是从一些安装脚本中):export DATABASE_URL=postgres://$(whoami)。我从没想过数据库url会影响配置!很高兴我能帮忙!