Выберите * из таблицы с NodeJS // ОШИБКА: {ошибка: отношение "mytable" не существует - PullRequest
0 голосов
/ 17 февраля 2020

Я получаю следующую ошибку во время моего запроса SELECT от PostgreSQL DB

ERROR: { error: relation "free_subnets" does not exist
    at Connection.parseE (/home/ec2-user/environment/node_modules/pg/lib/connection.js:604:11)
    at Connection.parseMessage (/home/ec2-user/environment/node_modules/pg/lib/connection.js:401:19)
    at Socket.<anonymous> (/home/ec2-user/environment/node_modules/pg/lib/connection.js:121:22)
    at Socket.emit (events.js:198:13)
    at addChunk (_stream_readable.js:288:12)
    at readableAddChunk (_stream_readable.js:269:11)
    at Socket.Readable.push (_stream_readable.js:224:10)
    at TCP.onStreamRead [as onread] (internal/stream_base_commons.js:94:17)
  name: 'error',
  length: 103,
  severity: 'ERROR',
  code: '42P01',
  detail: undefined,
  hint: undefined,
  position: '15',
  internalPosition: undefined,
  internalQuery: undefined,
  where: undefined,
  schema: undefined,
  table: undefined,
  column: undefined,
  dataType: undefined,
  constraint: undefined,
  file: 'parse_relation.c',
  line: '874',
  routine: 'parserOpenTable' }

Если я использую команду psql и делаю там выбор, это работает.

\ dt предоставляет мне соотношение:


   Schema    |     Name     | Type  |  Owner   
-------------+--------------+-------+----------
 subnet_calc | free_subnets | table | postgres

Для параметра Search_path установлено значение: subnet_cal c, publi c

Я создал таблицу с пользователь postgres, поэтому я владелец схемы subnet_cal c и таблицы free_subnets.

Мой фиктивный код nodejs следующий:

const pg = require('pg');


const cs = 'postgres://postgres:password@anydb.rds.amazonaws.com:5432/subnet_calculator';

const client = new pg.Client(cs);
client.connect();

client.query('SELECT * FROM subnet_calc.free_subnets', function(result) {
  console.log(result);
});

Что может быть вопрос?

Заранее спасибо за помощь!

Ответы [ 2 ]

0 голосов
/ 18 февраля 2020

Я мог бы решить проблему. Это была моя ошибка, таблицы были созданы в БД postgres, а не в subnet_calculator.

Я закрою этот вопрос.

0 голосов
/ 17 февраля 2020

вам нужно задать путь поиска для него следующим образом:

db.query("SET search_path TO 'subnet_calc';")

и затем выполнить запрос:

const query = `SELECT * FROM free_subnets`

db.query(query)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...