我正在使用没有sudo访问权限的CentOS 6.8版(最终版)服务器。我编译了PostgreSQL v9.6 beta 2。
当我使用ant加载数据时,我得到 am.amcanorder列不存在错误,我不知道如何修复。
我正在按照教程设置Intermine数据仓库系统,我在this step。
ant -Dsource=uniprot-malaria -v
这需要几分钟才能完成,命令会运行 以下步骤:
粗体部分是(在我看来)导致错误的部分。相关错误详见:
org.postgresql.util.PSQLException: ERROR: column am.amcanorder does not exist
Position: 407
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2161)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1890)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:255)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:559)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:403)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:283)
at org.postgresql.jdbc2.AbstractJdbc2DatabaseMetaData.getIndexInfo(AbstractJdbc2DatabaseMetaData.java:4234)
at org.intermine.task.CreateIndexesTask.execute(CreateIndexesTask.java:212)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
答案 0 :(得分:42)
Player87是正确的,只需用9.5。*的 PostgresSQL 服务器替换新版本9.6 *即可。 但是,还有另一种解决方案。对于Java项目,我还尝试在9.6。*上保留 PostgresSQL 服务器,并更新了PostgresSQL驱动程序,从版本9.4-1203到最新的9.4-1211。 在maven pom.xml文件中:
<postgresql.version>9.4.1211</postgresql.version>
这也适合我。
答案 1 :(得分:12)
这个问题是通过编译v9.5.3来解决的,这是目前最新的稳定版本。以前,我使用的是v9.6beta2 ...在使用JDBC和amp;时使用reported error。 v9.6beta2。
答案 2 :(得分:8)
对我来说(从Java / Maven应用程序连接到PostgreSQL并面临同样的错误)这是一个驱动程序问题。
将PostgreSQL驱动程序从9.4-1201-jdbc41更新到42.1.4解决了它。 我的Maven依赖现在看起来像这样:
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.1.4</version>
</dependency>
答案 3 :(得分:7)
我遇到了与SpringBoot相同的问题,并通过升级我的驱动程序解决了这个问题
对于Spring Boot 1.4.0,我刚刚添加了以下依赖项
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
</dependency>
答案 4 :(得分:0)
就我而言,我使用的是 PostgreSQL 驱动程序 (9.4.1204) 并且与 hive 外部元存储不兼容。替换为 https://jdbc.postgresql.org/download.html 的最新版本后工作。