JPA사용 직접 작성한 DDL로 테이블 생성(schema.sql)

2026. 3. 4. 14:38·코드잇 스프린트/실습
  jpa:
    hibernate:
      ddl-auto: create 
    show-sql: true

application.yml내에 ddl-auto를 켜놓으면 JPA가 @Entity를 보고 테이블을 자동으로 생성한다.

따라서 내가 작성한 DDL에 따라 테이블을 생성할 수 없다.

 

resoucres\schema.sql이라는 파일명으로 DDL을 작성하여 테이블 설계를 하였다.

제약조건에 따라 테이블 생성 순서를 유의 해야한다.

CREATE TABLE USERS (
    id UUID PRIMARY KEY ,
    created_at TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMPTZ,
    username VARCHAR(50) NOT NULL UNIQUE ,
    email VARCHAR(100) NOT NULL UNIQUE ,
    password VARCHAR(60) NOT NULL ,
    profile_id UUID UNIQUE ,
    FOREIGN KEY (profile_id) REFERENCES BINARY_CONTENTS(id) ON DELETE SET NULL

);

.
.
.

 

이렇게 작성한 DDL을 바탕으로 테이블을 만들기 위해서는 jpa의 ddl-auto를 none으로 만들어줘야한다.

yml에 spring.sql.init.mode: always를 넣어줘야 src/main/resources 내 schema.sql(DDL)과 data.sql(DML)을 찾아 실행하게 된다.

 

mode: always는 Spring Boot가 schema.sql과 data.sql을 언제 실행할지 결정하는 옵션이다.

Spring Boot가 시작될때 DB 종류와 상관없이 SQL 초기화 스크립트를 항상 실행한다는 의미.

 

mode: never는 SQL 초기화 스크립트 실행안함

(기본값) mode: embedded는 내장 DB(H2...)에서만 실행

 

spring:
  datasource:
    url: jdbc:postgresql://localhost:포트/내db
    username: 유저이름
    password: 비번
    driver-class-name: org.postgresql.Driver
  #    url: jdbc:h2:mem:test
  jpa:
    hibernate:
      ddl-auto: none # ?? ??? update, ??? none ??
    show-sql: true       # ?? ?? ??

  sql:
    init:
      mode: always

 

이렇게 설정하고 실행하면 DataGrip에 테이블들이 생성된걸 확인 할 수 있다.

'코드잇 스프린트 > 실습' 카테고리의 다른 글

Entity를 Controller까지 그대로 노출 할때 발생할 수 있는 문제점  (0) 2026.03.09
디스코드 프로젝트 실습: Entity 정의하기(JPA 어노테이션,cascade,고아객체)  (0) 2026.03.05
JPA ERROR : user는 PostgreSQL 예약어라서 테이블명을 따로 정해야한다.  (0) 2026.03.03
PostgreSQL DB 와 Spring Boot(InteliJ) 연동하기  (0) 2026.03.03
[sprint5] 디스코드 어플리케이션 채널 생성시 NPE 발생  (0) 2026.02.23
'코드잇 스프린트/실습' 카테고리의 다른 글
  • Entity를 Controller까지 그대로 노출 할때 발생할 수 있는 문제점
  • 디스코드 프로젝트 실습: Entity 정의하기(JPA 어노테이션,cascade,고아객체)
  • JPA ERROR : user는 PostgreSQL 예약어라서 테이블명을 따로 정해야한다.
  • PostgreSQL DB 와 Spring Boot(InteliJ) 연동하기
과컴
과컴
벡엔드 개발자 최소기준 맞추겠습니다.
  • 과컴
    곽의 프로그램
    과컴
  • 전체
    오늘
    어제
    • 분류 전체보기 (76)
      • 위클리페이퍼 (6)
      • 파이썬 (4)
      • 코드잇 스프린트 (48)
        • Spring 이론 (7)
        • Java이론 (11)
        • 실습 (23)
      • 백엔드 개발자 최소기준 (1)
      • 코딩테스트 (5)
        • 알고리즘 (0)
        • SQL (1)
      • Git (5)
      • 스프링부트 핵심가이드 (1)
      • 트러블 슈팅 (2)
  • 블로그 메뉴

    • 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    파이썬기초
    문자열
    혼공파
    백준브론즈
    백준1075번
    백준2576
    파이썬입문
    파이썬
    백준1152
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
과컴
JPA사용 직접 작성한 DDL로 테이블 생성(schema.sql)
상단으로

티스토리툴바