Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- http
- kotlin
- 김영한
- 백준
- Thymeleaf
- 자바
- transaction
- 그리디
- QueryDSL
- Exception
- java
- 스프링 핵심 원리
- JPQL
- springdatajpa
- Android
- JDBC
- AOP
- 알고리즘
- Spring Boot
- Greedy
- pointcut
- 스프링 핵심 기능
- db
- 인프런
- Servlet
- jpa
- 스프링
- Proxy
- SpringBoot
- spring
Archives
- Today
- Total
개발자되기 프로젝트
데이터베이스 스키마 자동 생성, DDL 주의사항 본문
1.데이터베이스 스키마 자동 생성
- DDL???(Data Definition Language)
- 데이터베이스를 정의하는 언어이며, 데이터의 전체의 골격을 결정하는 역할을 하는 언어 - DDL을 애플리케이션 실행 시점에 자동 생성
- 애플리케이션 로딩 시점에 create문으로 DB를 생성하고 시작할 수 있음. - 테이블 중심 -> 객체 중심
- 데이터베이스 방언을 활용해서 데이터베이스에 맞는 적절한 DDL 생성
- 이렇게 생성된 DDL은 개발 장비에서만 사용
- 생성된 DDL은 운영서버에서는 사용하지 않거나, 적절히 다듬은 후에 사용
2. 데이터베이스 스키마 자동 생성 - 속성
hibernate.hbm2ddl.auto
옵션 | 설명 |
create | 기존테이블 삭제 후 다시 생성(drop + create) |
create-drop | create와 같으나 종료 시점에 drop |
update | 변경분만 반영(운영 DB에서는 사용하면 안됨) - 지우는건 반영 안됨. |
validate | 엔티티와 테이블이 정상 매핑되었는지 확인 - ex) missing column |
none | 사용하지 않음 |
3. 데이터베이스 스키마 자동 생성 시 주의 사항.
- 운영 장비에서는 절!!!대!!! create, create-drop, update 사용하면 안된다.
- 개발 초기 단계에는 create 또는 update
- 테스트 서버는 update 또는 validate, 공통으로 같이쓰는데 create로 하면
애플이케이션 실행 시 기존 데이터 다날라감.(drop 후 create) - 스테이징과 운영 서버는 validate 또는 none
- 운영에서 alter실행되면 DB lock 걸림.. ㄷ
4. DDL 생성 기능
- 제약 조건 추가
- nullable : 필수여부
- length : 길이 제한
- 회원 이름은 필수, 이름은 10자 초과 안됨.
@Column(nullable = false, length = 10) private Sting name
- 유니크 제약조건 추가
- 애플리케이션 실행에 영향 없고, 단지 DDL 생성에만 영향.
- uniqueConstraints : 해당 column의 값은 unique하다는 제약조건 설정.
@Table(uniqueConstraints = {@UniqueConstraint( name = "NAME_AGE_UNIQUE", columnNames = {"NAME", "AGE"} )})
- DDL 생성 기능은 DDL을 자동 생성할 때만 사용되고 JPA의 실행 로직에는 영향을 주지 않는다
'인프런 > [인프런] 자바ORM 표준 JPA 프로그래밍' 카테고리의 다른 글
기본 키(PK) 매핑 (0) | 2021.08.09 |
---|---|
필드와 컬럼 매핑 (0) | 2021.08.09 |
객체와 테이블 매핑 (0) | 2021.08.08 |
플러시, 준영속 상태, 정리 (0) | 2021.08.08 |
영속성 컨텍스트 2 (0) | 2021.08.08 |
Comments