Datagrip - соединение PostgreSQL с Heroku не показывает таблицы

Я подключился к своей базе данных Heroku PostgreSQL с помощью Jetbrains Datagrip. Аутентификация прошла успешно, мне не нужно было указывать преимущества при подключении, когда я заполнил host, db, username and password, Test connection было успешным.

Когда я пишу запрос в консоль, все работает, например:

SELECT * FROM users

найти всех пользователей в моей базе данных.

У меня проблема, когда я хочу увидеть таблицы в структуре моей базы данных. Они не появляются. В дереве проекта я вижу только Database_name -> schemas -> public -> key_id_seq (image: Древовидная структура проекта). Когда я нажимаю кнопку синхронизации, я получаю сообщение об ошибке:

[42703] org.postgresql.util.PSQLException: ERROR: column t.relhasoids does not exist
  Position: .
Error encountered when performing Introspect database *db_name* schema public (details): ERROR: column t.relhasoids does not exist
  Position: .
ERROR: column t.relhasoids does not exist
  Position: 

Я делаю что-то неправильно? Спасибо.


person Fidas    schedule 14.03.2020    source источник


Ответы (3)


Datagrip обновлен до версии DataGrip 2019.3.3, Build # DB-193.6494.42, созданной 12 февраля 2020 г., теперь работает :)

person Fidas    schedule 15.03.2020

Попробуйте использовать Introspect с метаданными JDBC. Это исправило это для меня, когда (я думаю) у меня было несоответствие версий между сервером postgresql и клиентом DataGrip.

В настройках подключения - ›вкладка« Параметры »-› установите флажок Introspect с использованием метаданных JDBC.

Согласно https://www.jetbrains.com/help/datagrip/data-sources-and-drivers-dialog.html#optionsTab:

Переключитесь на интроспектор на основе JDBC.

Для получения информации об объектах базы данных (метаданных БД) DataGrip использует следующие интроспекторы:

  1. Собственный интроспектор (может быть недоступен для некоторых СУБД). Собственный интроспектор использует специфичные для СУБД таблицы и представления в качестве источника метаданных. Он может извлекать специфичные для СУБД детали и создавать более точную картину объектов базы данных.

  2. Интроспектор на основе JDBC (доступен для всех СУБД). Интроспектор на основе JDBC использует метаданные, предоставленные драйвером JDBC. Он может получать только стандартную информацию об объектах базы данных и их свойствах.

Рассмотрите возможность использования интроспектора на основе JDBC, когда собственный интроспектор не работает или недоступен.

Собственный интроспектор может дать сбой, если версия вашего сервера базы данных старше минимальной версии, поддерживаемой DataGrip.

Вы можете попробовать переключиться на интроспектор на основе JDBC, чтобы исправить проблемы с получением информации о структуре базы данных из вашей базы данных. Например, когда схемы, существующие в вашей базе данных, или объекты базы данных ниже уровня схемы не отображаются в окне инструмента базы данных.

person David Hempy    schedule 20.11.2020

Мой случай здесь был другим. Но я получал аналогичную ошибку:

Произошла ошибка:

01:15:21 PM: Error: ERROR:  column rel.relhasoids does not exist
LINE 1: ...t_userbyid(rel.relowner) AS relowner, rel.relacl, rel.relhas...

Я использовал pgadmin 3 для подключения к Postgresql, размещенному на Heroku. Затем я настраиваю pgadmin 4. На нем не отображалась ошибка. Для установки pgadmin 4 я использовал подход докеров.

docker pull dpage/pgadmin4
docker run -p 5050:80 -e "[email protected]" -e "PGADMIN_DEFAULT_PASSWORD=thirumal" -d dpage/pgadmin4

Теперь откройте браузер и перейдите по адресу http: // localhost: 5050 /.

person ARKhan    schedule 12.12.2020