我最近在我的 Mac Mini Server 上进行了 Lion Server 的全新安装,然后立即升级到 Mountain Lion,而无需从备份文件中复制任何数据。然后我重新安装了我的 Rails 应用程序并将它们部署到生产环境(同一台机器)。我还使用了我在 Lion Server 下创建的 PgAdmin 备份文件,并在升级到 Mountain Lion 后使用它重建了我的数据库。
当我进入 PostgreSQL 终端时,我收到以下消息。我使用它来工作的基本命令没有任何问题。
psql (9.1.4, server 9.2.1)
WARNING: psql version 9.1, server version 9.2.
Some psql features might not work.
Type "help" for help.
我在我的 Rails 应用程序中实现 queue_classic gem 时也遇到了问题,因为它说 psql 的服务器版本是 9.2.1,但 pg_dump 是 9.1.4 版本。
psql --version 产生 psql (PostgreSQL) 9.1.4
pg_dump --version 产生 pg_dump (PostgreSQL) 9.1.4
我在我的 Rails 应用程序中使用 gem pg 0.12.2。现在我使用的是 0.14.1 版本。这个问题是在我升级到 Mountain Lion 后仍然使用 0.12.2 版本之后开始的。当我重建我的 Rails 应用程序时,数据库是在 PgAdmin 中手动创建的。我确实 rake db:migrate 重建表结构和索引。然后我使用我的 PgAdmin tar 备份文件来重建数据。
我试图安装 phpPgAdmin 的最新稳定版本。我遇到了一个问题,因为 PostgreSQL 中缺少一列。来自 PostgreSQL 的文档指出该列已在 9.2 版中删除。此时我确定数据库是9.2.1。我当时还假设那是 Mountain Lion 安装的版本。我的假设是错误的。
然后我重新安装了 PgAdmin 进行数据库维护,以便使用我的备份恢复我的数据库。当我检查 Rails 应用程序中使用的数据库的属性时,它说它是 PostgreSQL 9.2.1 数据库。
这些是我安装的唯一与 PostgreSQL 相关的软件包。我没有在我的机器上安装另一个版本的 PostgreSQL,除非其中一个包做了一些我不知道的事情。
我不使用 Homebrew、MacPorts 或任何类似工具。我可能会在某个时候。
当我在 /usr 中对 psql 进行 Finder 搜索时,我只能在 /usr/bin 中找到一个文件。我猜那是版本 9.1.4。
我读到的所有关于这方面的研究都是关于那些自己安装了另一个版本的 PostgreSQL 的人。这听起来可能很愚蠢,但是我到底如何才能创建一个比当前安装的 PostgreSQL 版本更高的数据库呢?这显然是当我从备份重建数据库时发生的事情,即使我没有指定版本。我该如何解决这个问题?我想使用 9.2.1 版本,因为我相信这是 PostgreSQL 的最新稳定版本。我非常愿意接受建议。我只需要我的数据库以某种方式匹配我正在使用的 PostgreSQL 版本,这样我就不会在使用 gems 或其他检查 psql 和 pg_dump 版本的 PostgreSQL 进程时受到阻碍。我想我有两个选择,要么以某种方式安装 PostgreSQL 9.2.1,要么在 9.1.4 下重新创建我的数据库。
任何帮助,将不胜感激。