J'utilise travis-ci.org pour tester un module Node.js. Il utilise le dernier paquet pg pour accéder à une base de données PostgreSQL."Autorisation refusée" à l'aide de PostgreSQL COPY dans Travis-CI
Les tests d'intégration doivent utiliser la commande Postgres copy
(à partir d'une transaction ... pas de psql \copy
) pour remplir une table temporaire avec un certain CSV données. Tout passe localement ... mais en cours d'exécution sur Travis-CI je frappe:
"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',
...
donc un fichier Permission denied
est la chose. Mes compétences noob Linux me disent que le fichier existe à cet endroit. J'ai essayé chmod
en 777, mais cela n'a eu aucun effet.
Je me connecte à Postgres Travis avec la chaîne:
postgres://postgres:[email protected]:5432
bien
Et tout est avec cela. Une chose, je ne PostgreSQL besoin v9.6, donc mon fichier .travis.yml
ressemble à:
language: node_js
node_js:
- "6"
services:
- postgresql
addons:
postgresql: "9.6"
sudo: false
dist: trusty
... qui a beaucoup travaillé dans le passé, mais c'est la première fois que j'ai jamais eu pour utiliser copy
.
Je suppose que c'est quelque chose à voir avec l'utilisateur que Postgres exécute en quelque sorte?
Toute aide très chaleureusement reçue!
Tim
Merci @MichielB, a travaillé un charme! –