Usage:
npx pgrita
[--token <token>]
[--project <project>]
[--connection <database>]
[--gitBranch <branch>]
[--gitHash <hash>]
The following CLI arguments are required unless the relevant environmental variable is supplied:
--token <token>
: your authentication token from pgRITA.com; alternatively supply via thePGRITA_TOKEN
environmental variable.--project <project>
: the name of your project on pgRITA.com; alternatively supply via thePGRITA_PROJECT
environmental variable.--connection <database>
: connection string to your PostgreSQL database (see below); alternatively supply via theDATABASE_URL
environmental variable.
The command will exit with success (0
exit code) if introspection is
successful, the upload is successful, the results from your database analysis
are retrieved within the allotted timeout (30 seconds, normally much faster),
and the analysis results show no errors. In all other cases the command will
exit with a non-zero status code indicating failure.
This command is suitable for use in your CI workflow.
If you don't supply git branch/hash via the --gitBranch
and --gitHash
flags,
we will attempt to determine your git branch and git hash by using these
continuous integration environmental variables:
- GitHub Actions:
- branch:
GITHUB_REF
- hash:
GITHUB_SHA
- branch:
- Circle CI
- branch:
CIRCLE_BRANCH
- hash:
CIRCLE_SHA1
- branch:
- Travis CI
- branch:
TRAVIS_PULL_REQUEST_BRANCH
orTRAVIS_BRANCH
- hash:
TRAVIS_COMMIT
- branch:
Failing that, we'll try and extract them from the local git repository by running the following commands:
- git branch:
git rev-parse --abbrev-ref HEAD
- git hash:
git rev-parse --verify HEAD
If this fails, we'll progress without branch/hash.
If you have PostgreSQL installed locally using trust authentication, your
database name may suffice. Otherwise a standard PostgreSQL connection URI (e.g.
postgres://user:password@host:port/dbname
) should be supplied. If your
PostgreSQL connection requires SSL (e.g. error such as
ERROR: no pg_hba.conf entry for host "xxx.xxx.xxx.xxx", user "***, database "***", SSL off
),
you may need to add ?ssl=true
to the connection string. If you get an error
such as ERROR: self signed certificate
then the quickest fix is to add
?ssl=no-verify
; there are other more proper fixes but they're somewhat
complex - we use the pg
module (https://node-postgres.com/) as our PostgreSQL
client, so more instructions can be found there (or ask on the
Graphile Discord).
You can read more about connection strings here: