Как явно определить схему для пула node-postgres - PullRequest
0 голосов
/ 18 июня 2019

Я использую пул nodepostgres для запроса базы данных, имеющей пользовательскую схему.

Есть два способа справиться с этим:

  1. Все запросы должны быть специализированы ссхема типа customSchema.tablename.
  2. Выполните этот запрос перед другими запросами:
    pool.query(SET search_path TO ${params["db_schema"]}, public);

У меня две проблемы с этими подходами:

  1. Мне нужно выборочно подключиться к двум БД.Одна БД имеет собственную схему, а другая - нет.Поэтому я не могу использовать метод № 1.
  2. При использовании подхода к запросу для установки seach_path он работает для нескольких запросов, а затем выдает ошибку, говоря, что не может найти таблицу.Я полагаю, что это потому, что тайм-аут соединений с пулом или что-то подобное.

Итак, есть ли способ определить схему более согласованным способом?

1 Ответ

1 голос
/ 18 июня 2019

Это немного зависит от того, как вы подключаетесь, но если вы используете непротиворечивого пользователя, вы можете запустить:

ALTER USER SET search_path TO your_schema, public;

Затем, когда пользователь подключается, у этого пользователя будет установлен этот search_path по умолчанию.

...