46707bd116
기존엔 PostgreSQL 만 테스트 가능했고, V001 (SERIAL→VARCHAR) 마이그레이션 이후 회사 프로비저닝 시 시퀀스가 max(id) 보다 작은 상태로 남아있어서 새 외부 커넥션 등록 시 duplicate key 가 재발하던 문제 해결. backend - build.gradle: MariaDB/MySQL/MSSQL/SQLite JDBC 드라이버 4종 runtimeOnly 추가 - ExternalDbConnectionService.executeConnectionTest: PostgreSQL-only 가드 제거, dbType 별 JDBC URL/props 분기 구현 (postgresql/mysql/mariadb/mssql/sqlite). defaultPort helper 추가 - mapper/externalDbConnection.xml: INSERT/UPDATE 의 port/connection_timeout/query_timeout/max_connections 에 ::varchar 캐스팅 추가 (V001 으로 VARCHAR 가 됐는데 클라가 숫자로 보내서 character varying = bigint 비교 불가로 500 나던 것) - DataCopier.resetSequences: VARCHAR PK + 시퀀스 의존성이 남은 컬럼도 setval 대상에 포함. MAX(col::bigint) + col ~ '^[0-9]+$' 정규식으로 type mismatch 회피하면서 숫자형 VARCHAR PK 만 안전하게 reset frontend - ExternalDbConnectionModal: DialogContent 를 flex 컬럼으로, 본문에 자체 스크롤 + Footer shrink-0 → 길어진 폼에서도 취소/생성 버튼이 항상 보이도록 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
56 lines
2.0 KiB
Groovy
56 lines
2.0 KiB
Groovy
plugins {
|
|
id 'org.springframework.boot' version '3.3.5'
|
|
id 'io.spring.dependency-management' version '1.1.6'
|
|
id 'java'
|
|
}
|
|
|
|
group = 'com.erp'
|
|
version = '0.0.1-SNAPSHOT'
|
|
|
|
java {
|
|
sourceCompatibility = JavaVersion.VERSION_21
|
|
targetCompatibility = JavaVersion.VERSION_21
|
|
}
|
|
|
|
configurations {
|
|
compileOnly {
|
|
extendsFrom annotationProcessor
|
|
}
|
|
}
|
|
|
|
repositories {
|
|
mavenCentral()
|
|
}
|
|
|
|
dependencies {
|
|
implementation 'org.springframework.boot:spring-boot-starter-web'
|
|
implementation 'org.springframework.boot:spring-boot-starter-websocket'
|
|
developmentOnly 'org.springframework.boot:spring-boot-devtools'
|
|
implementation 'org.springframework.boot:spring-boot-starter-mail'
|
|
implementation 'org.springframework.boot:spring-boot-starter-security'
|
|
implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:3.0.3'
|
|
implementation 'io.jsonwebtoken:jjwt-api:0.12.3'
|
|
runtimeOnly 'io.jsonwebtoken:jjwt-impl:0.12.3'
|
|
runtimeOnly 'io.jsonwebtoken:jjwt-jackson:0.12.3'
|
|
implementation 'org.postgresql:postgresql'
|
|
// 외부 커넥션 테스트용 JDBC 드라이버 (runtimeOnly — 내부 비즈니스 DB 는 PostgreSQL 만 사용)
|
|
runtimeOnly 'org.mariadb.jdbc:mariadb-java-client:3.4.1'
|
|
runtimeOnly 'com.mysql:mysql-connector-j:8.4.0'
|
|
runtimeOnly 'com.microsoft.sqlserver:mssql-jdbc:12.8.1.jre11'
|
|
runtimeOnly 'org.xerial:sqlite-jdbc:3.46.1.0'
|
|
compileOnly 'org.projectlombok:lombok'
|
|
annotationProcessor 'org.projectlombok:lombok'
|
|
implementation 'org.flywaydb:flyway-core'
|
|
implementation 'org.flywaydb:flyway-database-postgresql'
|
|
implementation 'org.springframework.boot:spring-boot-starter-quartz'
|
|
implementation 'org.springframework.boot:spring-boot-starter-validation'
|
|
testImplementation 'org.springframework.boot:spring-boot-starter-test'
|
|
testImplementation 'org.springframework.security:spring-security-test'
|
|
testCompileOnly 'org.projectlombok:lombok'
|
|
testAnnotationProcessor 'org.projectlombok:lombok'
|
|
}
|
|
|
|
tasks.named('test') {
|
|
useJUnitPlatform()
|
|
}
|