4

自从我在 Heroku 上部署并希望匹配生产以来,我最近切换到 postgres 来开发一个正在开发的 Rails 应用程序。当我将数据库名称设置为“postgres”时,Postgres 已为我的应用程序安装并正常工作,这是我理解的默认名称。

但是,我想更改用于开发、测试和生产的数据库名称。如果我只是更改 database.yml 中的名称,并尝试运行 rake 任务,我会在终端中收到以下错误:

NOTICE:  database "something_development" does not exist, skipping
Couldn't drop something_test : #<PG::Error: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?>
rake aborted!
FATAL:  database "something_development" does not exist

这是我的 database.yml 文件当前的样子:

development:
  adapter: postgresql
  host: localhost
  database: something_development

  username: name


test:
  adapter: postgresql
  database: something_test
  pool: 5
  timeout: 5000

production:
  adapter: postgresql
  host: localhost
  username: name
  database: something_production

我还缺少其他步骤吗?抱歉,如果我在这里遗漏了一些明显的东西!谢谢!

4

1 回答 1

3

更改database.yml文件中的名称只会更改它查找数据库的位置,它实际上并没有重命名数据库本身。如果更改指定位置,则需要使用 GUI 工具(如navicatpgadmin)或命令行重命名数据库以匹配。

此外,这可能是一个混淆遗漏,但您发布的输出指的是shredset_developmentsomething_development。如果这继续失败,也许验证你所有的名字在所有地方都是一样的......

于 2012-12-06T00:29:19.937 回答