Pgai
Simple CLI wrapper around Postgres.ai CLI to drop directly into a PSQL session.
Installation
Install the gem by executing:
gem install pgai
Configuration
For an overview of available commands, execute:
pgai -h
Before usage pgai config must be executed and at least an environment must be configured with pgai env add.
An access token will be required and it can be obtained from: https://console.postgres.ai/gitlab/tokens
Example:
pgai config --prefix=<gitlab handle>
To configure environments:
pgai env add --alias ci --id ci.lab.internal --port 2345 -n gitlabhq_dblab
The environment id and port can be found by clicking on the Connect button on a database instance page.
The the id attributes must be configured for SSH port forwarding via the ~/.ssh/config file. Example:
Host <bastion>
User <username>
IdentityFile ~/.ssh/id_ed25519
Host *.lab.internal
User <username>
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_ed25519
ProxyCommand ssh <bastion> -W %h:%p
Usage
pgai connect <env alias>
Multiple connect commands for an environment will connect to the same clone, it won't start a new one.
pgai use --only <env alias> -- command can be used to run commands with access to a clone. Example for connecting a Rails console to the CI database:
pgai use -o ci -v -- bin/rails c -e test
Features
- multiple psql sessions to the same clone
- multiple environments support
- automatic port forward management
- prevents system sleep while psql sessions are active via
caffeinate
Upgrading from version 0
- Update and test the ssh config file
~/.dblab/and its contents can be removed~/.config/pgai/config.pstoreshould be removed and recreated withpgai config- The environment ID serves as the proxy host and the database name can be configured per environment.
- Environments can share the same remote port value.
Contributing
Bug reports and pull requests are welcome on GitLab at https://gitlab.com/mbobin/pgai.