我目前有一个使用 PostgreSQL 数据库的 Rails 3.2.9 应用程序,当我将 Mac Mini 服务器升级到 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 中的路径。当我执行 which psql 时,它正确指向 postgres.app 版本 9.2.2。根据 postgres.app 网站所说的,我将 config/database/yml for development 更改为以下内容。
development:
adapter: postgresql
encoding: unicode
database: newname_devl
当我像往常一样使用 localhost:3000 运行我的 Rails 应用程序时,应用程序指向原始数据库。我期待一个错误,因为我没有执行 rake db:migrate 来重建新数据库中的所有表。
不知何故,我需要能够让我的 PostgreSQL 数据库版本与 PostgreSQL 的版本相匹配,但我不知道从这里去哪里。我会继续寻找。
任何帮助,将不胜感激。
更新 2012 年 12 月 31 日上午 5:50 CST GMT-6
我尝试了下面的命令。这是我之前尝试过的一个。我得到了命令下列出的错误(用户名被屏蔽)。
psql -h localhost
psql: FATAL: role "username" does not exist
我创建了角色“用户名”并再次尝试了该命令。我收到以下错误。
psql: FATAL: database "username" does not exist
我决定尝试下面的命令。我得到了命令下列出的错误。
psql -h localhost -U _postgres
psql: FATAL: database "_postgres" does not exist
数据库_postgres 不存在;数据库 postgres 可以。