- Go 언어에서 PostgreSQL 을 사용하기 위해 먼저 pq 패키지를 import 해야 한다.
$ go get github.com/lib/pq
- Fly.io 에서 Postgres 클러스터를 생성하려면 fly postgres create 명령을 사용한다. 이 명령은 이름, 지역, VM 리소스를 프롬프트에 입력해야 한다.
- 짧은 별칭이 추가되었기 때문에 flyctl postgres, fly postgres, flyctl pg, fly pg 중 어떤 명령을 사용해도 동일한 결과를 얻는다.
$ flyctl postgres create


- 네 개의 메뉴 중 하나를 선택한다. ‘Production’ 옵션을 사용하면 리더 레플리카 설정에서 2-node 클러스터를 사용할 수 있다. 단일 노드 ‘Development’ 옵션은 쉽게 스케일을 증가시킬 수 있고, 더 많은 지역으로 확장할 수 있다.
- 모든 프롬프트에 응답하면 클러스터가 생성되며, 암호를 안전하게 보관하라는 주의 사항 이 나온다.
Postgres cluster todobyjustin created
Username: postgres
Password: 9yXjAU2ek27xzDN
Hostname: todobyjustin.internal
Proxy port: 5432
Postgres port: 5433
**Connection string: postgres://postgres:[email protected]:5432**
- 배포가 완료되면 새로운 Postgres 클러스터에 앱을 연결할 수 있다.
- 자동화된 Postgres 생성 프로세스는 fly.toml 파일을 생성하지 않는다. 이것은 fly.toml 파일에서 app 이름을 찾는 flyctl 명령을 사용하는 것과는 다르게, 아래와 같이 앱을 지정해야 한다는 것을 의미한다.
// Connection string: postgres://postgres:[email protected]:5432
$ flyctl <command> -a <postgres-app-name>
- Fly app 으로부터의 연결이 가능하다.
- Connection string URI 는 Postgres 서버에 연결을 설명하는 일반적인 방법이다. flyctl postgres create 의 출력은 아래 형식의 connection string을 제공한다.