web-dev-qa-db-fra.com

Erreur PostgreSQL: column am.amcanorder n'existe pas

Je travaille sur un serveur CentOS version 6.8 (finale) sans accès à Sudo. J'ai compilé PostgreSQL v9.6 beta 2.

Lorsque je charge des données avec ant, la colonne am.amcanorder n'existe pas, erreur que je ne sais pas comment corriger.

Je suis un tutoriel pour configurer le système d'entreposage de données Intermine et je suis sur cette étape .


 ant -Dsource=uniprot-malaria -v

Cela prendra quelques minutes, la commande exécute les étapes suivantes:

  • Vérifie qu’une source avec le nom uniprot-malaria existe dans project.xml
  • Lit les fichiers XML UniProt à l'emplacement spécifié par src.data.dir
  • Appelle l'analyseur inclus dans la source uniprot avec la liste de fichiers, cela lit le code XML d'origine et crée des éléments qui sont des représentations en métadonnées des objets qui seront chargés dans la base de données malariamine.
  • Ces éléments sont stockés dans une base de données d'éléments intermédiaire. Lit à partir de la base de données des éléments, convertit les éléments en objets et les charge dans la base de données de la malariamine .

La partie en gras est ce qui (à mon avis) cause l'erreur. L'erreur pertinente verbeuse est:

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

Le problème a été résolu en compilant la version 9.5.3, la dernière version stable à ce jour. Auparavant, j'utilisais la v9.6beta2 ... qui a un erreur signalée lorsque je travaille avec JDBC & v9.6beta2.

12
player87

Player87 a raison, cela fonctionne simplement en remplaçant la nouvelle version 9.6 * par 9.5. * Du PostgresSQL serveur.
Mais, il existe une autre solution. Pour un projet Java, j'ai aussi essayé de partir PostgresSQL serveur le 9.6. * et mis à jour le pilote PostgresSQL, de la version 9.4-1203 à la dernière version 9.4-1211. Dans un fichier maven pom.xml:

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

Cela a fonctionné pour moi aussi.

44
ancab

Pour moi (connexion à PostgreSQL depuis une application Java/Maven et confrontée à la même erreur), il s'agissait d'un problème de pilote.

La mise à jour du pilote PostgreSQL de 9.4-1201-jdbc41 à 42.1.4 a résolu le problème. Ma dépendance Maven ressemble maintenant à ceci:

    <dependency>
        <groupId>org.postgresql</groupId>
        <artifactId>postgresql</artifactId>
        <version>42.1.4</version>
    </dependency>
9
GreenTurtle

J'ai rencontré le même problème avec Spring Boot et l'ai résolu en mettant à niveau mon pilote.

Pour Spring Boot 1.4.0, je viens d'ajouter la dépendance suivante

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

7