【问题标题】:database.yml file configuration and postgres - rake db:drop db:create db:migratedatabase.yml 文件配置和 postgres - rake db:drop db:create db:migrate
【发布时间】:2012-11-23 23:11:21
【问题描述】:

自从我在 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

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

【问题讨论】:

    标签: ruby-on-rails postgresql


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢 - 这成功了。使用命令行,我输入 psql 进入 postgres,然后 ALTER DATABASE name RENAME TO newname 后跟 \g 执行。还修复了我的问题中的混淆错误。
    猜你喜欢
    • 2011-12-31
    • 1970-01-01
    • 2012-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多