나는 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}
- 이 후 지정한 포트 번호로 연결하면 확인이 가능하다.
'포트폴리오' 카테고리의 다른 글
[LeetCode] 리트코드 오늘의 문제로 바로 redirect 해주는 서비스 (0) | 2022.12.11 |
---|---|
병역 특례 업체 조회 웹사이트 [K-Agent] (0) | 2022.12.06 |
서버에 드디어 api를 배포했다!! (1) | 2021.08.13 |
첫번째 프로젝트 시작 해보자. (1) | 2021.07.21 |