이전 노션 블로그의 스프링의 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
update
: 기존의 스키마를 유지하며 JPA에 의해 변경된 부분만 추가validate
: entity와 테이블이 정상적으로 매핑되어 있는지만 검증create
: 기존에 존재하는 스키마를 삭제하고 새로 생성create-drop
: 스키라르 생성하고 애플리케이션이 종료될 때 삭제none
: 초기화 동작을 하지 않음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))
validate
설정을 해도 스프링 부트가 자동으로 schema.sql
의 SQL을 실행하기 때문에 테이블이 삭제되었다가 다시 생성된다.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}