我目前有一个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确实。
答案 0 :(得分:1)
如果您已将database.yml更新为正确的名称,我不确定它将如何访问错误的数据库。将database.yml中的数据库名称更改为“foobar123”时会发生什么情况,或者旧的或新的Postgres中不存在某些您是肯定的名称?