mirror of
https://github.com/gitlabhq/gitlabhq.git
synced 2025-08-03 16:37:48 +00:00
60 lines
2.4 KiB
Markdown
60 lines
2.4 KiB
Markdown
---
|
|
stage: Data Access
|
|
group: Database Frameworks
|
|
info: Any user with at least the Maintainer role can merge updates to this content. For details, see https://docs.gitlab.com/development/development_processes/#development-guidelines-review.
|
|
title: Database Lab access using the `pgai` Ruby gem
|
|
---
|
|
|
|
[@mbobin](https://gitlab.com/mbobin) created the [`pgai` Ruby Gem](https://gitlab.com/mbobin/pgai/#pgai) that
|
|
greatly simplifies access to a database clone, with support for:
|
|
|
|
- Access to all database clones listed in the [Postgres.ai instances page](https://console.postgres.ai/gitlab/instances);
|
|
- Multiple `psql` sessions on the same clone.
|
|
|
|
If you have `AllFeaturesUser` [`psql` access](database_lab.md#access-database-lab-engine),
|
|
you can follow the steps below to configure the `pgai` Gem:
|
|
|
|
1. To get started, you need to gather some values from the [Postgres.ai instances page](https://console.postgres.ai/gitlab/instances):
|
|
|
|
1. Go to the instance that you want to configure and the on right side of the screen.
|
|
1. Under **Connection**, select **Connect**. The menu might be collapsed.
|
|
|
|
A dialog with everything that's needed for configuration appears, using this format:
|
|
|
|
```shell
|
|
dblab init --url "http://127.0.0.1:<local-port>" --token TOKEN --environment-id <environment-id>
|
|
```
|
|
|
|
```shell
|
|
ssh -NTML <local-port>:localhost:<instance-port> <instance-host> -i ~/.ssh/id_rsa
|
|
```
|
|
|
|
1. To configure `ssh`, follow the instruction at [Access the console with `psql`](database_lab.md#access-the-console-with-psql), replacing `${USER}` with your postgres.ai username.
|
|
|
|
1. Run the following commands:
|
|
|
|
```shell
|
|
gem install pgai
|
|
|
|
# Before running the following command,
|
|
# grab an access token from https://console.postgres.ai/gitlab/tokens
|
|
pgai config --prefix=<postgresai-user>
|
|
|
|
# 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 <instance-host> --port <instance-port> -n gitlabhq_dblab
|
|
```
|
|
|
|
1. Once this one-time configuration is done, you can use `pgai connect` to connect to a particular database. For
|
|
instance, to connect to the `main` database:
|
|
|
|
```shell
|
|
pgai connect main
|
|
```
|
|
|
|
1. Once done with the clone, you can destroy it:
|
|
|
|
```shell
|
|
pgai destroy main
|
|
```
|