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 the PGRITA_TOKEN
environmental variable.--project <project>
: the name of your project on pgRITA.com; alternatively
supply via the PGRITA_PROJECT
environmental variable.--connection <database>
: connection string to your PostgreSQL database (see
below); alternatively supply via the DATABASE_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_REF
GITHUB_SHA
CIRCLE_BRANCH
CIRCLE_SHA1
TRAVIS_PULL_REQUEST_BRANCH
or TRAVIS_BRANCH
TRAVIS_COMMIT
Failing that, we'll try and extract them from the local git repository by running the following commands:
git rev-parse --abbrev-ref HEAD
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: