스프링의 application.properties 설정 (+ ddl 설정, DB url/port)

sckwon770·2023년 10월 30일
0

스프링 부트

목록 보기
4/10

이전 노션 블로그의 스프링의 application.properties 설정 (+ ddl 설정, DB url/port) (2021.07.26)로부터 마이그레이션된 글입니다.

application-real-db.properties

spring.jpa.hibernate.ddl-auto=update
spring.jpa.generate-ddl=false
spring.datasource.url=jdbc:mariadb//{PATH}/{DATABASE}
spring.datasource.username={USERNAME}
spring.datasource.driver-class-name=org.mariadb.jdbc.Driver

jpa ddl 설정

ddl-auto

  • update : 기존의 스키마를 유지하며 JPA에 의해 변경된 부분만 추가
  • validate : entity와 테이블이 정상적으로 매핑되어 있는지만 검증
  • create : 기존에 존재하는 스키마를 삭제하고 새로 생성
  • create-drop : 스키라르 생성하고 애플리케이션이 종료될 때 삭제
  • none : 초기화 동작을 하지 않음

generate-ddl

ddl-auto 속성을 이용한 초기화 사용 여부

📌 서비스 운영 시, 다음과 같은 설정 주로 사용

spring.jpa.hibernate.ddl-auto=validate
spring.jpa.generate-ddl=false
spring.jpa.show-sql=true

📌 SQL 스크립트를 사용한 DB 초기화

  • 다음과 같이 schema.sql 또는 schema-{PLATFORM}.sql 과 같은 파일을 생성하여 자동으로 DB를 초기화할 수 있다.
  • resource/schema.sql
drop table account if exists
drop sequence if exists hibernate_sequence
create sequence hibernate_sequence start with 1 increment by 1
create table account (id bigint not null, password varchar(255), primary key(id))
  • 위와 같이 SQL 스크립트 파일로 초기화를 한다면 validate 설정을 해도 스프링 부트가 자동으로 schema.sql 의 SQL을 실행하기 때문에 테이블이 삭제되었다가 다시 생성된다.

datasource.url 형식

H2 : jdbc:h2:~/{DATABASE}

MariaDB : jdbc:mariadb//{PATH}/{DATABASE}

MySQL : jdbc:mysql//{PATH}/{DATABASE}

Oracle : jdbc:oracle//{PATH}/{DATABASE}

MongoDB : spring.data.mongodb.uri=mongodb://{USERNAME}:{PASSWORD}@{PATH}/{DATABASE}

profile
늘 학습하고 적용하고 개선하는 개발자

0개의 댓글