麻烦指向现有Rails 3.2.9应用于使用postgres.app创建的数据库

时间:2012-12-27 01:44:48

标签: ruby-on-rails-3.2 postgresql-9.2 postgres.app

我目前有一个Rails 3.2.9应用程序正在使用PostgreSQL数据库,当我将Mac Mini Server升级到Mountain Lion时,这些数据库是使用PgAdmin重新创建的。数据库创建为版本9.2.1,我不知道。我想我使用的PgAdmin版本使用该版本号创建了它们。我只有升级到Mountain Lion的Postgres版本9.1.4。我提交了另一个关于如何获取psql版本以匹配我的数据库文件版本的问题,因为这导致实现queue_classic以运行后台作业时出现问题。此时我还没有收到任何回复。我继续关注postgres.app。当前版本正在运行PostgreSQL 9.2.2。

我已将当前数据库中的数据复制到CSV文件中。我还在postgres.app中使用了psql终端,并创建了我想在我的Rails应用程序中使用的新数据库。我决定改变开发的定义&在config / database.yml中测试数据库,以确保在完全测试之前我不会弄乱生产数据库。为了确保我知道不同的我创建了具有不同名称的数据库,以确保我能够确定我的Rails应用程序指向使用postgres.app创建的数据库。

我按照postgres.app网站上的说明更改了我的路径bashrc。当我做哪个psql时,它正确指向postgres.app版本9.2.2。根据postgres.app所说的网站,我将config / database / yml的开发改为以下内容。

development:
  adapter: postgresql
  encoding: unicode
  database: newname_devl

当我像往常一样使用localhost:3000运行我的Rails应用程序时,应用程序指向原始数据库。因为我没有完成rake db,所以我期待一个错误:迁移以重建新数据库中的所有表。

不知何故,我需要能够使我的PostgreSQL数据库版本与PostgreSQL的版本相匹配,但我不知道从哪里开始。我会继续寻找。

任何帮助都将不胜感激。

更新12/31/2012 5:50 am CST GMT-6

我尝试了下面的命令。这是我之前尝试过的。我收到了命令下列出的错误(用户名掩码)。

psql -h localhost
psql: FATAL:  role "username" does not exist

我创建了角色“username”并再次尝试了该命令。我收到了以下错误。

psql: FATAL:  database "username" does not exist

我决定尝试下面的命令。我收到了命令下列出的错误。

psql -h localhost -U _postgres
psql: FATAL:  database "_postgres" does not exist

数据库_postgres不存在;数据库postgres确实。

1 个答案:

答案 0 :(得分:1)

如果您已将database.yml更新为正确的名称,我不确定它将如何访问错误的数据库。将database.yml中的数据库名称更改为“foobar123”时会发生什么情况,或者旧的或新的Postgres中不存在某些您是肯定的名称?