我正在使用travis-ci.org测试一个Node.js模块。 它使用最新的pg包来访问PostgreSQL数据库。
集成测试需要使用Postgres copy
命令(在事务内部...而不是psql的\copy
)来使用一些CSV数据填充临时表。
所有本地测试都通过了...但在Travis-CI上运行时,我遇到了以下问题:
"COPY some_table(column_a,column_b) FROM
'/home/travis/build/my_org/my_repo/test/fixtures/some_file.csv' CSV HEADER;"
{ error: could not open file
"/home/travis/build/my_org/my_repo/test/fixtures/some_file.csv" for reading:
Permission denied
at Connection.parseE
(/home/travis/build/my_org/my_repo/node_modules/pg/lib/connection.js:567:11)
at Connection.parseMessage name: 'error',
...
所以文件Permission denied
是个问题。我的 Linux 技能有限,但我知道那个位置上的文件是存在的。我尝试使用chmod
将其改为777,但没有任何效果。
我正在使用以下字符串连接到 Travis 上的 Postgres:
postgres://postgres:postgres@localhost:5432
一切都很好。但是我需要PostgreSQL V9.6,因此我的.travis.yml
文件如下:
language: node_js
node_js:
- "6"
services:
- postgresql
addons:
postgresql: "9.6"
sudo: false
dist: trusty
过去一直使用良好的方法,但这是我第一次使用 copy
。 我猜这可能与Postgres运行的用户有关?
非常感谢任何帮助!
Tim