나는 FlyIO를 애용하고 있다.

일단 프리티어가 토이 프로젝트 하는데는 매우 널널하고 배포 방법도 간단하여 굉장히 편리하게 cd를 구축할 수 있기 때문이다!

 

다만 FlyIO에서 제공하는 PostgreSQL DB를 사용하기에는 너무 알려진 정보가 없었다..

그래서 나와 같이 FlyIO 데이터베이스를 사용하고자 하는 사람들에게 수많은 시행착오 후에 터득하게 된 데이터베이스 연결방법을 공유하려고한다.

 

★ 참고 ★

Spring Boot에서 연결하는 것만을 중점적으로 설명하고 있습니다.

FlyIO에서 기본 제공하는 PostgreSQL에 대해서만 설명하고 있습니다.

 

  • 먼저 아래 명령어로 postgresql database를 만든다.
fly postgres create
  • 데이터베이스 생성이 완료되면 아래와 같은 db 정보가 나오게 되는데 이를 복사해둔다.
Postgres cluster {app name} created
  Username:    {username | 보통 postgres}
  Password:    {password | 랜덤하게 나옴}
  Hostname:    {app name}.internal
  Flycast:     {ip address}
  Proxy port:  5432
  Postgres port:  5433
  Connection string: postgres://postgres:{password}@{app name}.flycast:5432
  • connection string으로는 바로 접근이 불가능하다.
  • 또한 연결정보가 internal 즉 fly 내부에서 연결되도록 되어있기 때문에 연결은 어플리케이션을 fly에 올리고 연결하던가, 또는 db를 로컬로 연결하여 사용하는 방법이 있다.

1. fly에 올려서 연결하는 방법

  • 다른 것 없이 url에 이렇게 작성해주면 된다
jdbc:postgresql://{host name}:5432/?user={user name}&password={password}
  • connection string에 주어진 정보와는 꽤나 많이 달라서 여러번 시도해봤는데 이렇게 작성해주면 제대로 동작한다.
  • 아래는 예시 applciation.yml 이다.
spring:
  datasource:
    url: jdbc:postgresql://{host name}:5432/?user={user name}&password={password}
    username: {user name}
    password: {password}
    driver-class-name: org.postgresql.Driver
  jpa:
    hibernate:
      ddl-auto: update

2. 로컬에 db를 연결하여 확인하는 방법

  • 아래 명령어를 사용하면 된다.
fly proxy {port number} -a {app name}
  • 이 후 지정한 포트 번호로 연결하면 확인이 가능하다.

+ Recent posts