[SPRING] 스프링 부트 2.0 애플리케이션이 schema.sql을 실행하지 않는 이유는 무엇입니까?
SPRING스프링 부트 2.0 애플리케이션이 schema.sql을 실행하지 않는 이유는 무엇입니까?
Spring 시동 1.5를 사용하는 동안 Hibernate는 적절한 구성이 설정 될 때 / resources 폴더에있는 schema.sql 파일을 실행했다. Spring Boot 2.0 릴리스 이후에는 더 이상이 기능이 작동하지 않습니다. 나는이 문서화에 대한 변화를 발견 할 수 없었다. 다음은 내 application.properties 파일 내용입니다.
spring.datasource.url=...
spring.datasource.username=...
spring.datasource.password=...
#spring.jpa.hibernate.ddl-auto=create-drop
spring.jpa.hibernate.ddl-auto=none
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
Spring Boot 2.0에 약간의 변경이 있었습니까? 아니면 버그 / 문제입니까?
해결법
-
==============================
1.여기에서 문서를 확인하십시오.
여기에서 문서를 확인하십시오.
spring.jpa.hibernate.ddl-auto = create-drop이 있기 때문에 schema.sql이 실행되지 않습니다. 봄 부팅이 작동하는 것처럼 보입니다.
편집하다
문제 (실제로는 문제가 아님)는 애플리케이션이 mysql 인스턴스를 가리킨다 고 생각합니다.
현재의 Spring Boot 속성보기 :
spring.datasource.initialization-mode=embedded # Initialize the datasource with available DDL and DML scripts.
기본값은 삽입되어 있습니다 (예 : 실행중인 경우에만 H2와 같은 내장 데이터베이스를 초기화하십시오.
또한 여기 스테판의 대답을보십시오. 그는 말했다 :
그래서 설정하려고 :
spring.datasource.initialization-mode=always
-
==============================
2.포함되지 않은 데이터베이스를로드하는 경우 Spring Boot 2에서 다음을 추가해야합니다.
포함되지 않은 데이터베이스를로드하는 경우 Spring Boot 2에서 다음을 추가해야합니다.
spring.datasource.initialization-mode=always
마이그레이션 가이드 확인 :
한때 유사한 문제가있었습니다. h2 (임베디드 DB이기 때문에) 였지만 h2 구성은 내 테스트 프로파일에 의해 활성화되었습니다.
내 테스트 수업은 다음과 같았다.
@RunWith(SpringRunner.class) @SpringBootTest // does not work alone @ActiveProfiles("my-test") public class MyEntityRepositoryTest {
문제는 @SpringBootTest만으로 테스트 데이터베이스를 초기화하지 못했다는 것입니다. @DataJpaTest 또는 @ SpringBootTest + @ AutoConfigureTestDatabase 중 하나를 사용해야했습니다. 예제들
@RunWith(SpringRunner.class) @DataJpaTest // works @ActiveProfiles("sep-test") public class MyEntityRepositoryTest {
또는
@RunWith(SpringRunner.class) @SpringBootTest // these two @AutoConfigureTestDatabase // together work @ActiveProfiles("sep-test") public class MyEntityRepositoryTest {
-
==============================
3.나는 그런 식으로 Hikary CP를 제외하고 만 응용 프로그램을 실행할 수있었습니다 :
나는 그런 식으로 Hikary CP를 제외하고 만 응용 프로그램을 실행할 수있었습니다 :
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> <exclusions> <exclusion> <groupId>com.zaxxer</groupId> <artifactId>HikariCP</artifactId> </exclusion> </exclusions> </dependency>
https://github.com/spring-cloud/spring-cloud-security/issues/143에서 문제를 참조하십시오.
-
==============================
4.그것은 나를 위해 잘 작동, 당신은 그것을 시도 할 수 있습니다. HikariCP 대신 원하는 데이터 소스 유형을 설정하십시오.
그것은 나를 위해 잘 작동, 당신은 그것을 시도 할 수 있습니다. HikariCP 대신 원하는 데이터 소스 유형을 설정하십시오.
spring.datasource.initialization-mode=always spring.datasource.type=com.mysql.jdbc.jdbc2.optional.MysqlDataSource spring.jpa.hibernate.ddl-auto=none
-
==============================
5.spring.jpa.hibernate.ddl-auto = none을 설정하지 않으면 data.sql을 실행할 수없는 또 다른 문제가 발생할 수 있습니다. 즉, data.sql이 실행되지 않습니다. d.
spring.jpa.hibernate.ddl-auto = none을 설정하지 않으면 data.sql을 실행할 수없는 또 다른 문제가 발생할 수 있습니다. 즉, data.sql이 실행되지 않습니다. d.
from https://stackoverflow.com/questions/49438517/why-spring-boot-2-0-application-does-not-run-schema-sql by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] @Query 정의와 스펙을 하나의 Spring Data JPA 저장소 메소드에 결합 할 수 있습니까? (0) | 2019.04.04 |
---|---|
[SPRING] Spring Java Configuration - enum에서 bean으로의 참조를 만드는 방법 - 참조 (0) | 2019.04.04 |
[SPRING] XML 대신 java config를 사용하여 저장소 populator bean을 선언하는 방법? (0) | 2019.04.03 |
[SPRING] 싱글 톤의 여러 인스턴스를 만드는 봄? (0) | 2019.04.03 |
[SPRING] Spring Boot Actuator Trace에 JSON 응답 본문을 포함시키는 방법? (0) | 2019.04.03 |