web-dev-qa-db-ja.com

PostgreSQLエラー:列am.amcanorderが存在しません

私はCentOSリリース6.8(最終)ベースのサーバーでSudoアクセスなしで作業しています。 PostgreSQL v9.6 beta 2をコンパイルしました。

Antを使用してデータをロードすると、修正方法がわからないam.amcanorder列が存在しないエラーが発生します。

Intermineデータウェアハウジングシステムをセットアップするためのチュートリアルに従っており、 このステップ を実行しています。


 ant -Dsource=uniprot-malaria -v

これが完了するまでに数分かかります。コマンドは次の手順を実行します。

  • Uniprot-malariaという名前のソースがproject.xmlに存在することを確認します
  • Src.data.dirで指定された場所にあるUniProt XMLファイルを読み取ります
  • ファイルのリストを使用してuniprotソースに含まれるパーサーを呼び出します。これにより、元のXMLが読み取られ、マラリアミンデータベースにロードされるオブジェクトのメタデータ表現であるアイテムが作成されます。
  • これらのアイテムは、中間アイテムデータベースに保存されます。アイテムデータベースから読み取り、アイテムをオブジェクトに変換し、それらをマラリアミンデータベースにロードします

太字の部分は、(私の意見では)エラーの原因です。関連するエラーの詳細は次のとおりです。

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)
34
player87

さて、この問題は、現時点で最新の安定バージョンであるv9.5.3をコンパイルすることで修正されました。以前、私はv9.6beta2を使用していました... JDBCとv9.6beta2を使用するときに 報告されたエラー があります。

12
player87

Player87は正しいです。新しいバージョン9.6 *をPostgresSQLserverの9.5。*に置き換えるだけで機能します。
しかし、別の解決策があります。 Javaプロジェクトについては、PostgresSQLserver on 9.6。* PostgresSQLドライバーをバージョン9.4-1203から最新の9.4-1211に更新しましたmaven pom.xmlファイルで:

<postgresql.version>9.4.1211</postgresql.version>

それも私にとってはうまくいきました。

44
ancab

私にとって(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>
9
GreenTurtle

私はSpring Bootで同じ問題に直面し、ドライバーをアップグレードすることでこれを解決しました

Spring Boot 1.4.0では、次の依存関係を追加しました

<dependency> <groupId>org.postgresql</groupId> <artifactId>postgresql</artifactId> </dependency>