Spring
Spring 3.X.X버전에서 h2실습하면서 테이블 자동으로 생성하기[macOS]
뭐라도해야겠다
2023. 7. 7. 21:30
스프링 3.1.1버전부터는 H2 1.몇이였더라... 암튼 자동으로 테이블 생성하고 연결되는게 안된다고 한다.
그렇다고 해서 스프링 2점대를 쓰기는 싫어서리.... 없는 문제도 만들어서 해결해보려고 한다.
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>2.1.214</version>
<scope>runtime</scope>
</dependency>
h2버전은 2.1.214를 사용한다.
1. 우선 h2는 깔았으니까 h2.sh를 실행해서 서버를 켜준다.
2. Generic H2 (server)를 사용해서 우선 디비를 하나 생성해준다.
3. local/~/test로 만들면 test.db가 생성되는데, 이 디비를 원하는 이름으로 바꾸고 원하는 경로로 바꾼다.
디비생성을 하고, 원하는 경로에 두었다. 이제부터 접근할때는 tcp로 접근해야 한다.
jdbc:h2:tcp://localhost/~/ + 내가 지정한 경로 로 접근한다.
이제 application.yml을 설정해서 h2에 접근하고 테이블이 없다면 생성해주면 된다.
spring:
application:
name: user-service
h2:
console:
enable: true
settings:
web-allow-others: true
path: /h2-console
datasource:
driver-class-name: org.h2.Driver
url: jdbc:h2:tcp://localhost/~/inflearn/MSA/Ecommerce/eureka
username: sa
password:
jpa:
hibernate:
ddl-auto: create-drop
다른건 다 그렇다 치고 url을 내가 바꾼 위치로 넣어준다.
tcp로 연결해야함을 유의하자
jpa: hibernate: ddl-auto를 create-drop으로 해서 없다면 생성해주자
서버를 실행만 시켜줘도 테이블이 만들어지는걸 확인할 수 있다.
완료!