无法在Nitrous.io上创建数据库

时间:2014-09-16 01:53:36

标签: ruby-on-rails postgresql nitrousio

我已经在nitrous.io上的应用程序上成功创建并初始化了该应用程序的postgres数据库。我现在正在尝试在同一个盒子上为第二个应用程序配置数据库。

当我运行bundle exec rake db:create for new app时,我收到以下错误消息

rake aborted!
development database is not configured /home/action/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-3.2.13/lib/active_record/connection_adapters/abstract/connection_specification.rb:39:in `resolve_string_connection'
/home/action/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-3.2.13/lib/active_record/connection_adapters/abstract/connection_specification.rb:25:in `spec'
/home/action/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-3.2.13/lib/active_record/connection_adapters/abstract/connection_specification.rb:130:in `establish_connection'
/home/action/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-3.2.13/lib/active_record/railties/databases.rake:63:in `block (2 levels) in <top (required)>'
Tasks: TOP => db:create
(See full trace by running task with --trace)

如果我运行bundle exec rake db:create:all,我收到以下错误消息:

rake aborted!
undefined method `[]' for nil:NilClass
/home/action/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-3.2.13/lib/active_record/railties/databases.rake:50:in `block (4 levels) in <top (required)>'
/home/action/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-3.2.13/lib/active_record/railties/databases.rake:38:in `each_value'
/home/action/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-3.2.13/lib/active_record/railties/databases.rake:38:in `block (3 levels) in <top (required)>'
Tasks: TOP => db:create:all
(See full trace by running task with --trace
那么创建数据库的正确方法是什么?

我的db / database.yml文件如下:

# database configuration for Nitrous.io
development:
adapter: postgresql
encoding: unicode
database: better_life-dev
pool: 5
host: localhost
username: action
password:
  # Connect on a TCP socket. Omitted by default since the client uses a
  # domain socket that doesn't need configuration. Windows does not have
  # domain sockets, so uncomment these lines.
  #host: localhost

  # The TCP port the server listens on. Defaults to 5432.
  # If your server runs on a different port number, change accordingly.
  #port: 5432

  # Schema search path. The server defaults to $user,public
  #schema_search_path: myapp,sharedapp,public

  # Minimum log levels, in increasing order:
  #   debug5, debug4, debug3, debug2, debug1,
  #   log, notice, warning, error, fatal, and panic
  # Defaults to warning.
  #min_messages: notice
# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
test:
adapter: postgresql
database: better_life-test
pool: 5
host: localhost
username: action
password:

production:
  adapter: postgresql
  encoding: unicode
  database: better_life-prod
  pool: 5
  host: localhost
  username: action
  password:

2 个答案:

答案 0 :(得分:1)

您是否尝试将同一数据库用于两个不同的应用程序? 其他应用程序的database.yml内容应与此不同。

答案 1 :(得分:1)

您需要确保为config/database.yml文件缩进了每个设置两个空格。尝试使用具有确切格式的这些设置:

development:
  adapter: postgresql
  encoding: unicode
  database: better_life-dev
  pool: 5
  host: localhost
  username: action
  password:

test:
  adapter: postgresql
  database: better_life-test
  pool: 5
  host: localhost
  username: action
  password:

production:
  adapter: postgresql
  encoding: unicode
  database: better_life-prod
  pool: 5
  host: localhost
  username: action
  password: