์ด์ ๋ ธ์ ๋ธ๋ก๊ทธ์ ์คํ๋ง์ application.properties ์ค์ (+ ddl ์ค์ , DB url/port) (2021.07.26)๋ก๋ถํฐ ๋ง์ด๊ทธ๋ ์ด์ ๋ ๊ธ์ ๋๋ค.
application.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}