inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Ứng dụng kiến trúc microservice (MSA) phát triển với Spring Cloud

Catalogs Microservice - thực hiện chức năng ①

h2 DB 자동 생성에 관해서

6297

Gal2o

2 câu hỏi đã được viết

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

Câu trả lời 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

jtcjtc

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

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

0

iamkimseunghyun

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

0

Gal2o

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

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

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

0

84

1

강의 교안

0

72

1

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

0

79

1

api gateway 에서 인증 처리

0

64

1

섹션 19 질문드립니다

0

51

1

강의 자료 업데이트

0

81

1

부하분산 강의 섹션

0

56

1

강의자료는 어디에서?

0

69

1

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

0

109

1

전체 사용자 조회시 오류

0

57

1

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

0

109

2

학습 방향

0

94

2

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

0

85

2

kafka 강의

0

107

2

서비스 디스커버리 종류

0

87

2

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

0

115

2

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

0

89

2

Kafka Source Connect 버전 에러

0

83

2

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

0

81

2

강의자료 업데이트 문의

0

94

2

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

0

56

1

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

0

111

2

MSA 애플리케이션에 Spring Web과 Spring Data JPA를 사용하는 것이 바람직한지 궁금합니다. (MSA 설계와 관련된 질문입니다)

0

160

2

어떤 것이 업데이트 된 건가요?

0

162

2