Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3.2 与服务器版本的PostgreSQL 9.2.1和pg_转储版本9.1.4(Rails 3.2.9)冲突_Ruby On Rails 3.2_Rails Postgresql_Pgadmin - Fatal编程技术网

Ruby on rails 3.2 与服务器版本的PostgreSQL 9.2.1和pg_转储版本9.1.4(Rails 3.2.9)冲突

Ruby on rails 3.2 与服务器版本的PostgreSQL 9.2.1和pg_转储版本9.1.4(Rails 3.2.9)冲突,ruby-on-rails-3.2,rails-postgresql,pgadmin,Ruby On Rails 3.2,Rails Postgresql,Pgadmin,我最近在我的Mac Mini服务器上安装了Lion服务器,然后立即升级到Mountain Lion,而不复制备份文件中的任何数据。然后我重新安装了Rails应用程序,并将它们部署到生产环境(同一台机器)。我还获取了在Lion Server下创建的PgAdmin备份文件,并在升级到Mountain Lion后使用它重建了数据库 当我进入PostgreSQL终端时,我得到以下消息。我在工作中使用的基本命令没有任何问题 psql (9.1.4, server 9.2.1) WARNING: psql

我最近在我的Mac Mini服务器上安装了Lion服务器,然后立即升级到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——版本生成psql(PostgreSQL)9.1.4

pg_转储——版本生成pg_转储(PostgreSQL)9.1.4

我在Rails应用程序中使用了gempg0.12.2。现在我使用的是0.14.1版。问题是在我升级到Mountain Lion后开始的,当时我还在使用版本0.12.2。当我重建Rails应用程序时,数据库是由PgAdmin手工创建的。我做了rakedb:migrate来重建表结构和索引。然后,我使用我的PgAdmin tar备份文件来重建数据

我试图安装phpPgAdmin的最新稳定版本。我遇到了一个问题,因为PostgreSQL中缺少一列。来自PostgreSQL的文档说明该列在9.2版中被删除。此时,我确定数据库是9.2.1。我当时还以为那是山狮安装的版本。我的假设是错误的

然后,我重新安装了用于数据库维护的PgAdmin,以便使用备份恢复数据库。当我检查Rails应用程序中使用的数据库的属性时,它会说它是PostgreSQL 9.2.1数据库

这些是我安装的唯一与PostgreSQL相关的软件包。我还没有在我的机器上安装其他版本的PostgreSQL,除非这些软件包中有一个做了我不知道的事情

我不使用自制、MacPorts或任何类似工具。我可能会在某个时候

当我在/usr中查找psql时,我在/usr/bin中只找到一个文件。我猜这就是版本9.1.4

我读到的所有研究都是关于那些自己安装了另一版本PostgreSQL的人的。这听起来可能很愚蠢,但我究竟如何才能创建一个比当前安装的PostgreSQL版本更高的数据库呢?这显然是我从备份中重建数据库时发生的情况,尽管我没有指定版本。我如何解决这个问题?我想使用9.2.1版,因为我相信这是PostgreSQL的最新稳定版本。我很乐意接受建议。我只需要我的数据库以某种方式匹配我正在使用的PostgreSQL版本,这样我就不会在使用gems或其他检查psql和pg_dump版本的PostgreSQL过程中受到阻碍。我想我有两个选择,要么以某种方式安装PostgreSQL 9.2.1,要么在9.1.4下重新创建数据库。我只是想知道是否安装了两个版本的PostgreSQL


如果您有任何帮助,我们将不胜感激。

出现此错误是因为无法保证转储将在新版本中包含给定新功能的所有内容。事实上,由于系统目录中可能发生的更改,我们无法保证它能正常工作,因此这些工具通常会生成警告,但pg_dump将失败。您应该能够手动转储数据。因此,Ruby gems等其他工具可能会对如何处理警告更加谨慎

但是,如果您安装了PostgreSQL 9.2.1,我还希望您也应该拥有所有相关的客户端工具。您可以通过简单地搜索系统中的pg_dump和psql并查看是否可以找到新版本(您可能同时安装了这两个版本)来解决此问题。不过,这听起来像是您这样做的,但请查看其中有一些特定于mac的答案,这些答案表明您要使用的版本不在/usr中

下一步是查看PostgreSQL是如何安装的,并查找您可能缺少这些工具的原因