这里有输出:https://travis-ci.org/maxdobeck/gateway/jobs/373773101。
为什么我收到此错误:
error: relation "members" does not exist
我能够使用.sql文件来创建我需要的表格,但是当需要运行测试时,数据库表示这些表格不存在?我是否错误地配置了数据库更正?
答案 0 :(得分:0)
技术上是创建表脚本。我正在使用generate {uuid函数,就像在这个SO post
中一样添加创建扩展行就可以了。
此错误指向真正的根本原因:
错误:功能 uuid_generate_v4()不存在提示:没有函数匹配给定的 名称和参数类型。您可能需要添加显式类型转换。
答案 1 :(得分:0)
我遇到了同样的问题,我刚刚解决了它。问题可能是因为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');
最好使用象大象SQL之类的远程数据库或任何其他远程postgres db。
转到您的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
软件包