【问题标题】:Rake tasks seem to ignore database.yml configurationRake 任务似乎忽略了 database.yml 配置
【发布时间】: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


【解决方案1】:

问题在于 ENV['DATABASE_URL'] 已设置(通过某些安装脚本),因此它覆盖了 database.yml 配置,正如 steve klein 所指出的那样,所以我将其删除。

`export DATABASE_URL=postgres:///$(whoami)`

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-12
    • 1970-01-01
    • 2020-07-08
    • 2020-03-29
    • 1970-01-01
    • 1970-01-01
    • 2021-10-28
    相关资源
    最近更新 更多