Travis CI с Node.js и Postgresql: ошибка не существует - PullRequest
0 голосов
/ 02 мая 2018

Вот вывод: https://travis -ci.org / maxdobeck / gateway / jobs / 373773101 .

Почему я получаю эту ошибку: error: relation "members" does not exist

Я могу использовать файл .sql для создания нужных мне таблиц, но когда приходит время выполнять тесты, база данных говорит, что таблицы не существуют? Я неправильно настраиваю исправление базы данных?

Ответы [ 2 ]

0 голосов
/ 12 июля 2019

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

    before_script:
  - psql -c "create database yourdbname;" -U postgres
  - psql -c "create user dbusername WITH PASSWORD 'yourpassword';" -U postgres

создать скрипт, содержащий запрос для создания таблицы. мой напоминает что-то вроде этого.

const pg = require('pg');

const config = {
  user: 'yourdbusername', // this is the db user credential
  database: 'yourdb',
  password: 'yourdbpass',
  port: 5432,
  max: 10, // max number of clients in the pool
  idleTimeoutMillis: 30000
};
const pool = new pg.Pool(config);

pool.on('connect', () => {
  console.log('connected to the Database');
});

/**
 * Create Tables
 */
const createTables = () => {
  const queryText = `your query`;

  pool
    .query(queryText)
    .then(res => {
      console.log(res);
      pool.end();
    })
    .catch(err => {
      console.log(err);
      pool.end();
    });
};

pool.on('remove', () => {
  console.log('client removed');
  process.exit(0);
});

module.exports = {
  createTables,
  pool
};
require('make-runnable');

будет предпочтительнее использовать удаленную базу данных, такую ​​как elephantSQL или любую другую удаленную базу данных postgres. Перейдите к вашему package.json и добавьте следующую строку под скриптами

    "create": "node ./path/to/the/file createTables",

Теперь обновите ваш before_script до этого

before_script:
  - psql -c "create database wayfarer;" -U postgres
  - psql -c "create user wayfarer WITH PASSWORD 'rrwcscrz1';" -U postgres
  - "npm run create" 

Также убедитесь, что вы установили make-runnable и pg пакеты

0 голосов
/ 02 мая 2018

Технически это был скрипт создания таблиц. Я использовал функцию generate_uuid, как в этом SO сообщении

Добавление линии расширения create добилось цели.

Эта ошибка указывала на истинную основную причину:

ОШИБКА: функция uuid_generate_v4 () не существует СОВЕТ: ни одна функция не соответствует заданному типы имени и аргумента. Возможно, вам придется добавить явные приведения типов.

...