在 OSX 上使用 postgresql 测试数据库错误

Posted

技术标签:

【中文标题】在 OSX 上使用 postgresql 测试数据库错误【英文标题】:rails test database errors with postgresql on OSX 【发布时间】:2011-10-17 20:00:09 【问题描述】:

所以我最近迁移到了 postgresql,并且在创建测试数据库时遇到了问题。每当我运行 rake 任务时,它似乎破坏了我访问我创建的测试数据库的能力。例如,如果我运行以下命令

createdb -Ouser -Eutf8 example_test

我可以完美地运行测试,但是如果我运行 rake 任务,我会收到以下错误:

.rvm/gems/ruby-1.9.2-p180@standard/gems/activerecord-3.1.0/lib/active_record/connection_adapters/postgresql_adapter.rb:991:in `initialize': FATAL: database "example_test" 确实不存在(PGError)

如果我像这样创建一个新的测试数据库:

createdb -Ouser -Eutf8 example2_test

一切都会再次运行,直到我必须运行 rake 任务。有谁知道这个问题可能是什么?

【问题讨论】:

【参考方案1】:

通过查找有关该主题的以下博客文章修复了该错误:http://katrinaowen.com/2011/01/05/using-postgresql-with-rails-3-cucumber-and-rspec 简而言之,这是创建安装了 rspec 的数据库的错误,查看链接并运行命令以使其在您的系统上运行。

【讨论】:

非常感谢。过去一个小时一直在试图解决这个问题。这是我的一个愚蠢的错误。【参考方案2】:

也许您可以查看log/development.log 以了解为什么要删除数据库?并查看 rake 任务代码本身,看看它在做什么。

通常测试数据库是通过rake db:test:prepare基于config/database.yml生成的

【讨论】:

以上是关于在 OSX 上使用 postgresql 测试数据库错误的主要内容,如果未能解决你的问题,请参考以下文章

如何在 OSX 10.10.2 上将 R 与 PostgreSQL 连接?

升级到 OSX 10.7 Lion 后修复 Postgresql

Mac OSX下编译安装PostgreSQL

使用 brew 在 mac 上安装特定版本的 postgresql

在 OSX 中使用 Objective C 测试分布式对象连接

Confluence 6 PostgreSQL 测试你的数据库连接