Database Lab access using the pgai
Ruby gem
pgai
gem has not yet been updated to use the new database lab instances so you will only be able to access gitlab-production-main
and gitlab-production-ci
using this tool.@mbobin created the pgai
Ruby Gem that
greatly simplifies access to a database clone, with support for:
- Access to all database clones listed in the Postgres.ai instances page;
- Multiple
psql
sessions on the same clone.
If you have AllFeaturesUser
psql
access,
you can follow the steps below to configure the pgai
Gem:
-
To get started, you need to gather some values from the Postgres.ai instances page:
- Go to the instance that you want to configure and the on right side of the screen.
-
Under Connection, select Connect. The menu might be collapsed.
A dialog with everything that’s needed for configuration appears, using this format:
dblab init --url "http://127.0.0.1:1234" --token TOKEN --environment-id <environment-id>
ssh -NTML 1234:localhost:<environment-port> <postgresai-user>@<postgresai-proxy> -i ~/.ssh/id_rsa
-
Add the following snippet to your SSH configuration file at
~/.ssh/config
, replacing the variable values:Host pgai-proxy HostName <postgresai-proxy> User <postgresai-user> IdentityFile ~/.ssh/id_ed25519
-
Run the following command so you can accept the server key fingerprint:
ssh pgai-proxy
-
Run the following commands:
gem install pgai # Grab an access token: https://console.postgres.ai/gitlab/tokens # GITLAB_USER is your GitLab handle pgai config --dbname=gitlabhq_dblab --prefix=$GITLAB_USER --proxy=pgai-proxy # Grab the respective port values from https://console.postgres.ai/gitlab/instances # for the instances you'll be using (in this case, for the `main` database instance) pgai env add --alias main --id <environment-id> --port <environment-port>
-
Once this one-time configuration is done, you can use
pgai connect
to connect to a particular database. For instance, to connect to themain
database:pgai connect main
-
Once done with the clone, you can destroy it:
pgai destroy main