pgai Ruby gem을 사용한 데이터베이스 랩 액세스

경고: pgai 젬은 아직 새 데이터베이스 랩 인스턴스를 사용하도록 업데이트되지 않았으므로 이 도구를 사용하여 gitlab-production-maingitlab-production-ci에만 액세스할 수 있습니다.

@mbobinpgai Ruby Gem을 만들었으며, 다음을 지원하는 데이터베이스 클론에 대한 액세스를 크게 간소화했습니다:

  • Postgres.ai instances page에 나열된 모든 데이터베이스 클론에 대한 액세스;
  • 동일한 클론에서 여러 psql 세션.

만약 AllFeaturesUser psql access 권한이 있으면, 다음 단계를 따라 pgai Gem을 구성할 수 있습니다:

  1. 시작하려면 Postgres.ai instances page에서 몇 가지 값들을 수집해야 합니다:

    1. 구성하려는 인스턴스로 이동하고, 화면 오른쪽에 있는 것을 클릭합니다.
    2. Connection 아래에서 Connect를 선택합니다. 메뉴가 축소되어 있을 수 있습니다.

      구성에 필요한 모든 것이 포함된 대화 상자가 나타나며, 다음 양식을 사용합니다:

      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
      
  2. 변수 값을 대체하여 ~/.ssh/config의 SSH 구성 파일에 다음 스니펫을 추가합니다:

    Host pgai-proxy
      HostName <postgresai-proxy>
      User <postgresai-user>
      IdentityFile ~/.ssh/id_ed25519
    
  3. 서버 키 지문을 수락할 수 있도록 다음 명령을 실행합니다:

    ssh pgai-proxy
    
  4. 다음 명령을 실행합니다:

    gem install pgai
    
    # 액세스 토큰을 가져옵니다: https://console.postgres.ai/gitlab/tokens
    # GITLAB_USER는 GitLab 핸들입니다
    pgai config --prefix=$GITLAB_USER
    
    # 사용할 인스턴스(이 경우 `main` 데이터베이스 인스턴스)의 https://console.postgres.ai/gitlab/instances에서 해당 포트 값을 가져옵니다
    pgai env add --alias main --id <environment-id> --port <environment-port> -n <database_name>
    
  5. 이 일회성 구성이 완료되면 pgai connect를 사용하여 특정 데이터베이스에 연결할 수 있습니다. 예를 들어 main 데이터베이스에 연결하려면:

    pgai connect main
    
  6. 클론 완료 후에는 파기할 수 있습니다:

    pgai destroy main