
디렉토리 db 생성
기본적으로 생성하는것은
스키마sql, dataSql 2개를 만든다.
스키마는 테이블 생성코드(ddl = create, alter, drop 등)을,
dataSql은 더미데이터를 insert 한다.
엔티티로 자동으로 create 하니까 우리는 스키마는 안만들어도 OK
만약 우리가 MybATIS를 쓴다? 그럼 스키마 만들어줘야댐 (구분하는게 좋음)
아 근데
Create 가 먼저 일어나고 나중에 insert 가 일어나도록 해줘야된다.
일단 그건 나중에 하고 .sql 파일을 만들자



스프링이 동작할 때 data.sql 이 실행됨
근데 이렇게 하면 터짐

에러가 나면 일단 clear all

그리고 다시 실행해서 오류의 로그만 확인하기

stack trace
트레이스

에러를 자세히 보면


classpath 를 앞에 적어준다.
classpath를 적어야지 resource 폴더에 도달한다.

다시 실행하면 에러가 바뀐다.


위처럼 에러가 뜨는 이유는
아까 위에서 설명했듯이, board_tb 가 만들어지지 않았는데 data.sql을 실행해서
insert를 시도했기 때문이다.
이렇게 터지면 실행타이밍 바꿔줘야 한다. Create를 먼저 하도록!

spring.jpa.defer-datasource-initialization=true 설정을 추가해줘야지 엔티티 create 를 먼저 실행하게 된다.

어 왜 안돼?
에러발생


원인 : “제목” ⇒ 쌍따옴표를 넣어서 그런 것이다.

⇒ “ ” 쌍따옴표말고 ‘’홑따옴표를 적어야 한다…!!!!
더미데이터를 만드는 이유는 ?
- 동일한 환경을 설정해야지 같은 환경에서 실행하니 이야기를 하면 서로 이해하기 쉽다.
- 회원가입 먼저 안만들고 로그인부터 독립적으로 프로그램을 만들 수 있다.
→ 회원 더미 데이터를 넣어두면, 바로 로그인을 만들 수 있다.
→ 모든 프로그램은 독립적으로 만들 수 있어야 한다. 그렇게 안하면 협업을 할 수 없다.
→ 바퀴가 없어서 자동차 뼈대를 만들 수 있어야 한다.
추가)

url 에 jdbc:h2:mem:test 를 쓰는 이유
Share article