-
[Spring Error] wix-embedded-mysql 사용시 java.sql.sqlsyntaxerrorexception: table 'test-order_mgmt.products' doesn't exist 에러Backend/Spring 2022. 9. 6. 15:28728x90
Error
Test를 위한 embedded database를 사용하기 위해 wix-embedded-mysql을 사용하여 구현하였다.
maven 의존성 설정
<dependency> <groupId>com.wix</groupId> <artifactId>wix-embedded-mysql</artifactId> <version>4.6.2</version> <scope>test</scope> </dependency>
Test 클래스
@SpringBootTest @TestMethodOrder(MethodOrderer.OrderAnnotation.class) @ActiveProfiles("test") class ProductJdbcRepositoryTest { static EmbeddedMysql embeddedMysql; @BeforeAll static void setUp() { var config = aMysqldConfig(v5_7_10) .withCharset(Charset.UTF8) .withPort(2215) .withUser("test", "test1234!") .withTimeZone("Asia/Seoul") .build(); embeddedMysql = anEmbeddedMysql(config) .addSchema("test-order_mgmt", ScriptResolver.classPathScript("schema.sql")) .start(); } ... }
schema.sql
CREATE TABLE products ( product_id BINARY(16) PRIMARY KEY, product_name VARCHAR(20) NOT NULL, category VARCHAR(50) NOT NULL, price bigint NOT NULL, description VARCHAR(500) DEFAULT NULL, created_at datetime(6) NOT NULL, updated_at datetime(6) DEFAULT NULL );
- schema.sql 에 products 테이블을 정의해놨지만 해당 테이블이 없다는 에러가 발생했다.
Solutions
mysql은 생성됐기 때문에 schema.sql 파일을 인식하지 못하는 것 같아 다음과 같이 코드를 변경하여 해결하였다.
@SpringBootTest @TestMethodOrder(MethodOrderer.OrderAnnotation.class) @ActiveProfiles("test") class ProductJdbcRepositoryTest { static EmbeddedMysql embeddedMysql; @BeforeAll static void setUp() { var config = aMysqldConfig(v5_7_10) .withCharset(Charset.UTF8) .withPort(2215) .withUser("test", "test1234!") .withTimeZone("Asia/Seoul") .build(); embeddedMysql = anEmbeddedMysql(config) .addSchema("test-order_mgmt", classPathScript("schema.sql")) .start(); } ... }
728x90'Backend > Spring' 카테고리의 다른 글
[Spring] Spring Boot 3.x에서 Swagger 설정하기 (0) 2023.05.27 [Spring] JPARepository에서 Entity join 방법 및 대상 Entity가 아닌 다른 Entity를 반환해야 할 때 (0) 2022.10.06 [Spring] RequestCacheAwareFilter, ChannelProcessingFilter 사용하기 (0) 2022.09.02 [Spring] Spring Security Architecture에 대해서 (0) 2022.09.01 [Spring] Spring Security 로그인 계정 추가 및 자동 로그인 기능 설정하기 (0) 2022.09.01