Подтвердить что ты не робот

Ошибка PostgreSQL: column am.amcanorder не существует

Я работаю над сервером CentOS версии 6.8 (Final) без доступа sudo. Я скомпилировал PostgreSQL v9.6 beta 2.

Когда я загружаю данные с помощью ant, я получаю столбец am.amcanorder, не существует ошибки, которую я не знаю, как исправить.

Я следую руководству по настройке системы промежуточного хранилища данных, и я нахожусь этот шаг.


 ant -Dsource=uniprot-malaria -v

Это займет пару минут, команда запускает  следующие шаги:

  • Проверяет наличие источника с именем uniprot-malaria в файле project.xml
  • Читает XML файлы UniProt по адресу, указанному src.data.dir
  • Вызывает парсер, включенный в источник uniprot, со списком файлов, это считывает исходный XML и создает элементы, которые представления метаданных объектов, которые будут загружены в malariamine.
  • Эти элементы хранятся в базе данных промежуточных элементов. Читает из база данных элементов преобразует объекты в объекты и загружает их в база данных malariamine.

Полужирная часть - это то, что (по-моему) вызывает ошибку. Соответствующая ошибка:

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)
4b9b3361

Ответ 1

Ну, проблема была устранена путем компиляции v9.5.3, последней стабильной версии на данный момент. Раньше я использовал v9.6beta2..., который имеет сообщенную ошибку при работе с JDBC и v9.6beta2.

Ответ 2

Player87 прав, он работает только путем замены более новой версии 9.6 * на 9.5. * сервера PostgresSQL .
Но есть еще одно решение. Для Java-проекта я также попытался оставить PostgresSQL сервер на 9.6. * И обновил драйвер PostgresSQL с версии 9.4-1203 до новейшей версии 9.4-1211. В файле maven pom.xml:

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

Это тоже работало для меня.

Ответ 3

Я столкнулся с той же проблемой с SpringBoot и решил это, обновив драйвер

Для Spring Boot 1.4.0 я просто добавил следующую зависимость

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

Ответ 4

Для меня (подключение к PostgreSQL из приложения Java/Maven и обращение к той же ошибке) это была проблема с драйвером.

Обновление драйвера PostgreSQL с 9.4-1201-jdbc41 до 42.1.4 разрешило его. Теперь моя зависимость Maven выглядит следующим образом:

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