inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

Catalogs Microservice - 기능 구현 ①

h2 DB 자동 생성에 관해서

6342

Gal2o

작성한 질문수 2

1

강의대로 application.yml 에 DB 테이블 자동 생성 까지는 잘 작동을 하는데, data.sql 을 만들고 insert문에서 자꾸 에러가 뜨네요 ㅠ 원인이 뭘까요..

에러코드 입니다.

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSourceScriptDatabaseInitializer' defined in class path resource [org/springframework/boot/autoconfigure/sql/init/DataSourceInitializationConfiguration.class]: Invocation of init method failed; nested exception is org.springframework.jdbc.datasource.init.ScriptStatementFailedException: Failed to execute SQL script statement #1 of URL [file:/D:/Documents/spring_project/ecommerce/microservice/catalog-service/build/resources/main/data.sql]: insert into catalog (product_id, product_name, stock, unit_price) values ('CATALOG-001', 'Berlin', 100, 1500); nested exception is org.h2.jdbc.JdbcSQLException: Table "CATALOG" not found; SQL statement: insert into catalog (product_id, product_name, stock, unit_price) values ('CATALOG-001', 'Berlin', 100, 1500) [42102-176]

spring-boot JPA architecture spring-cloud msa Kafka

답변 6

10

Dowon Lee

안녕하세요, 이도원입니다. 

Spring Boot 2.5 부터 data.sql의 사용법이 조금 변경되었습니다. 다음과 같은 설정을 적용하셔서 실행해 보셔도 좋을 것 같습니다. 

spring.jpa.defer-datasource-initialization=true

https://springhow.com/spring-boot-version/

9

Gal2o

spring 2.5.0 버전을 사용하고 있었는데 data.sql 이라는 파일명이 에러를 계속 발생시켰습니다..

import.sql로 변경했더니 정상 작동 하였습니다.

3

Dowon Lee

안녕하세요, 이도원입니다. 

application.yml 파일에 아래와 같은 정보를 추가하시고, 애플리케이션을 다시 기동해 보시기 바랍니다. 

spring:
application:
name: catalog-service
h2:
console:
enabled: true
settings:
web-allow-others: true
path: /h2-console
jpa:
hibernate:
ddl-auto: create-drop
show-sql: true
generate-ddl: true
datasource:
driver-class-name: org.h2.Driver
url: jdbc:h2:mem:testdb

감사합니다. 

0

제이티시

하하.. 저도 작동이 계속 안 됐는데, data.sql 파일의 insert 마지막에 ';' (세미콜론)을 안 붙였었네요ㅋㅋ..

yml파일은 동영상 밑 안내글처럼 복붙 하고, data.sql 파일명 그대로 하고, ';' 잘 붙이니 잘 작동합니다. 스프링부트 2.5.7 버전입니다.

0

먼길

이것 때문에 한참 고생했는데 (다음 편 강좌에는 글이 없어서....) yml 설정 다시 해주고 살았습니다. data.sql 파일명 in 스프링부트 2.5.2 버전입니다.

0

Gal2o

application.yml 만 있을 때는 서버도 잘 작동이 되고, 비어있는 catalog 테이블이 만들어지는 것을 확인 하였습니다.

하지만 data.sql 파일을 만들고 서버를 작동 시켰을 때, data.sql의 insert 하는 부분에서 tabla not found 에러가 뜹니다.

service-discovery 프로세스 가동 이유

0

5

1

rabbitmq에 configservice 연결에 대해 질문있습니다.

0

47

1

kafka 업데이트 강의 듣고 시포요

0

135

2

강의 교안

0

121

2

마이크로서비스간 통신 시, 인증 처리

0

138

2

api gateway 에서 인증 처리

0

85

1

섹션 19 질문드립니다

0

97

2

강의 자료 업데이트

0

123

2

부하분산 강의 섹션

0

78

1

강의자료는 어디에서?

0

109

2

강의 자료는 어디서 다운 받을 수 있나요?

0

151

2

전체 사용자 조회시 오류

0

74

1

혹시 pk 외 별도의 id 를 부여한 이유가 있을까요 ??

0

140

2

학습 방향

0

112

2

카프카 커넥터 사용 목적 문의

0

112

2

kafka 강의

0

132

2

서비스 디스커버리 종류

0

108

2

강의 자료에 대해서 궁금해요

0

144

2

GlobalFilter, LoggingFilter가 동작하지 않습니다.

0

103

2

Kafka Source Connect 버전 에러

0

120

2

소스커넥터는 사용안한 거 맞죠?

0

106

2

강의자료 업데이트 문의

0

103

2

강의에서 BCryptPasswordEncoder 에 역할(5-2)

0

68

1

강의 업데이트 계획이 궁금합니다.

0

129

2