Я использую DataGrip для работы с кластером Redshift, который содержит множество баз данных, и подсветка ошибок выглядит немного странной. Предположим, у меня есть schema_1.table_a
в базе данных dev
и schema_2.table_b
в базе данных test
в том же кластере. Если я подключусь к dev
и напишу запрос:
select * from schema_2.table_b
ссылка на таблицу schema.table выделена (правильно) как ошибка, выходящая за рамки.
Однако, если я подключусь к базе данных test
и напишу запрос:
select * from schema_1.table_a
нет выделения ошибок, и DataGrip предлагает автозаполнение ссылки. Неудивительно, что во время выполнения запрос вызывает ошибку, поскольку test
не содержит эту схему или таблицу.
Я нахожу это особенно странным, потому что это влияет только на одно соединение с базой данных. Расширяя этот пример, test
ведет себя странно, но prod
, scratch
и т. Д. Все ведут себя так, как ожидалось, выделяя похожие ошибки вне области видимости.
Есть ли какие-то настройки области базы данных, которые я случайно изменил? Сводят меня с ума, пытаясь отладить код, когда я запускаю его в производство.
Удаление соединения Redshift и создание нового не влияет на поведение; возможно, это как-то связано с postgres / Redshift?
legacy
с описанной выше проблемой -dev
,test
,prod
,scratch
и несколько других, у которых нет. Соединение устанавливается с помощьюscratch
в поле db - все остальное по умолчанию соответствует встроенному шаблону Redshift (и так же, как другие проекты Redshift, настроенные и работающие нормально). Стоит отметить, что это также изолировано для конкретного пользователя. Если вы вошли в систему как root в том же кластере, проблема исчезнет, иlegacy
соединения будут вести себя так же, как и любые другие. - person jptk   schedule 21.05.2018