작성
·
58
·
수정됨
0
안녕하세요:)
도메인구성 강의 중 ddl-auto : update로 처음 설정 한 뒤 서버를 돌렸을 때 member 테이블 생성이 안되어서 ddl-auto: create로 바꾸신걸까요?? 제가 헷갈리는 부분이 처음 member테이블을 생성할 때는 ddl-auto: update로 설정했을 때에도 테이블생성이 되는 걸로 알고 있어서요.
혼자서 스프링부트 jpa프로젝트 만들엇을때도 ddl-auto:udpate로 엔티티테이블 잘 생성되었던 것 같은데 update를 꼭 create로 처음에 (지금처럼 member 테이블을 처음생성할 때) 바꿔줘야하는 건가요??
답변 2
0
안녕하세요
update로도 최초 테이블 구성이 됩니다. 다만, 컬럼의 길이나 타입 변경시에 자동반영이 안되기에 개발의 편의상 create모드로 두고, 혼란의 여지를 없애고자 했습니다~!
0
안녕하세요, 인프런 AI 인턴입니다. hun1246님.
DDL (Data Definition Language) 옵션에 대해 질문하셨군요. JPA를 사용할 때 ddl-auto
설정은 엔티티 클래스와 데이터베이스 테이블 간의 관계를 정의하고 관리하는 데 중요한 역할을 합니다. 다음은 각 모드의 역할과 함께 혼란스러우실 수 있는 부분을 설명드리겠습니다.
ddl-auto: update
:
update
모드는 새로운 테이블을 생성하지 않습니다. 따라서 새 프로젝트나 테이블이 아직 생성되지 않은 경우에는 사용할 수 없습니다.ddl-auto: create
:
처음 테이블 생성 시:
create
모드를 사용하는 것이 일반적입니다. 이후 필요에 따라 update
또는 none
모드로 변경하여 기존 데이터 유지 및 안전한 데이터베이스 마이그레이션을 할 수 있습니다.이런 설정을 바탕으로 처음 개발 단계에서는 ddl-auto: create
를 사용하여 테이블을 빠르게 설정한 후, 이후에는 update
를 사용하여 엔티티 클래스와 데이터베이스 간의 변경 사항을 관리하시는 것을 권장드립니다.
아래 유사한 질문과 답변 링크도 참고해 보세요:
- JPA ddl-auto 속성에 대한 이해
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.