작성
·
67
0
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
네, jpa와 db 설정, 동작 확인 동영상 입니다.
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
아니요. 있는 내용인데 찾아보고 해결하지 못했습니다.
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)
네
[질문 내용]
여기에 질문 내용을 남겨주세요.
테스트 코드 실행 시 member 테이블이 생성되지 않습니다. ddl 설정은 create이고, 관련 설정 확인해도 못찾아서 문의 드려요.
테스크 코드 맨 마지막에 로그를 찍어놨는데, 해당 로그가 찍히고 이 뒤에 테이블이 왜 drop될까요?
도저히 모르겠습니다...ㅎ
https://drive.google.com/file/d/1WT3dZ7HexApj0xAYZsFJSkKVpaSmGEFM/view?usp=sharing
구글 드라이브 프로젝트 첨부 드립니다.
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
blessthy님, H2 데이터베이스에 Member
테이블이 생성되지 않는 문제를 겪고 계시는군요. ddl-auto: create
설정은 애플리케이션 시작 시 테이블을 생성하도록 하는데, 테스트 후 테이블이 사라진다면 설정 문제가 있을 수 있습니다.
우선, 관련 문제에 대한 다음 사항을 확인해보세요:
테스트 롤백 설정 확인:
@Transactional
에 의해, 기본적으로 테스트가 끝나면 자동으로 롤백됩니다. 하지만 @Rollback(false)
어노테이션을 사용하여 롤백을 방지하고 있지만, 여전히 설정 파일이나 다른 곳에서 롤백이 강제로 적용되는지 확인해보세요.application.yml
이나 application.properties
설정:
ddl-auto
값이 create
로 설정되어 있는지, 그리고 필요하다면 update
로 변경해 테스트 후 데이터가 남아 있는지 확인해보세요.H2 콘솔 및 로그 확인:
create table
, drop table
관련 메시지와 경고 로그가 있는지 확인해 보세요.유사한 문제에 대한 해결 사례를 소개드리겠습니다:
application.yml
의 설정을 확인하세요. 특히, YAML의 들여쓰기가 맞지 않으면 설정이 적용되지 않는 경우가 있습니다.이 외에 H2 콘솔에서 SQL을 실행해보거나 설정을 점검하여 추가적인 실마리를 찾는 것도 좋은 방법입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
다음날 보니 눈에 보이네요
application.yml 설정에 오타가 있었습니다.
spring:으로 시작해야하는데 string:이라고 적어놧네요...ㅎ 후..
감사합니다.