본문 바로가기

전체 글

(383)
TestCode 실행 시 liquibase에서 Table "DATABASECHANGELOG" already exists; SQL statement 에러 문제 Test Code를 돌릴 때 liquibase에서 아래와 같이 'DATABASECHANGELOG" already exists; SQL statement' 라는 에러가 났다. liquibase로 changelog 중 schema.xml을 만들 때 DATABASECHANGELOG라는 테이블을 포함하지 않았고, 생성된 schema.xml에도 create하는 부분이 없는데 DATABASECHANGELOG 생성을 시도하고 있었다. 원인 DATABASECHANGELOG는 liquibaes에서 사용하고 있는 테이블이고, 없으면 liquibase에서 자동으로 생성한다. liquibase에서 DATABASECHANGELOG 테이블을 만들 때, 테이블이 있는 지 없는 지 조사한다. 조사할 때 이미 존재했던 DATAB..
liquibase에서 changelog 중 data.xml 생성할 때, GC overhead limit exceeded 에러 문제 liquibase로 changelog 중 data.xml을 생성하려고 했는데, 빈 data.xml이 생성되었다. 로그를 확인하니, data.xml 생성 도중 아래와 같이 GC overhead limit exceeded 에러가 발생했다. 실행한 liquibase 쉘 스크립트는 아래와 같다. INCLUDE_OBJTECTS는 data.xml 파일을 만들 때 포함할 테이블 목록이 있고, 테이블 양이 33개 정도 되었다. JDBC_DRIVER_HOME=${HOME}/.m2/repository/mysql/mysql-connector-java JDBC_DRIVER_VERSION=8.0.12 CLASSPATH=${JDBC_DRIVER_HOME}/${JDBC_DRIVER_VERSION}/mysql-connector..
Test 코드에서 h2 database로 MySql 쿼리 실행 시 row_number에서 syntax 에러 문제 MySql 조회 Query에 row_number를 사용하는 필드를 추가하고, Test Code를 돌렸는데, 아래와 같은 에러가 났다. Caused by: org.h2.jdbc.JdbcSQLException: Syntax error in SQL statement JOOQ로 작성한 쿼리와 실행된 SQL 쿼리는 대략 아래와 같았다. JOOQ Field groupSeqField = DSL.rowNumber() .over(partitionBy(tProduct.GROUP_CD) .orderBy(tProduct.ID.asc())) .as("groupSeq"); dslContext.select( tProduct.ID, groupSeqField ) .from(tProduct) .fetchInto(Product.cl..