From 14ad4b5b3990ac24ff1d2e07bcb2f46225b7f253 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=ED=98=84=EC=84=B1=ED=95=84?= Date: Tue, 17 Oct 2023 14:07:04 +0900 Subject: [PATCH] =?UTF-8?q?=EA=B8=B0=EB=8F=99=20=EC=8B=9C,=20=EC=BB=AC?= =?UTF-8?q?=EB=9F=BC=20=ED=83=80=EC=9E=85=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/ApiRequestMigrationService.java | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/main/java/com/eactive/httpmockserver/client/service/ApiRequestMigrationService.java b/src/main/java/com/eactive/httpmockserver/client/service/ApiRequestMigrationService.java index 5408c8c..35931a3 100644 --- a/src/main/java/com/eactive/httpmockserver/client/service/ApiRequestMigrationService.java +++ b/src/main/java/com/eactive/httpmockserver/client/service/ApiRequestMigrationService.java @@ -3,21 +3,44 @@ package com.eactive.httpmockserver.client.service; import com.eactive.httpmockserver.client.repository.ApiRequestRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.context.event.ApplicationReadyEvent; +import org.springframework.context.ApplicationContext; import org.springframework.context.event.EventListener; import org.springframework.stereotype.Service; +import javax.sql.DataSource; import javax.transaction.Transactional; +import java.sql.Connection; +import java.sql.Statement; @Service @Transactional public class ApiRequestMigrationService { + @Autowired + private ApplicationContext applicationContext; + @Autowired ApiRequestRepository apiRequestRepository; @EventListener(ApplicationReadyEvent.class) public void migrate() { + // Fetch DataSource from Spring Context + DataSource dataSource = applicationContext.getBean(DataSource.class); + + try (Connection connection = dataSource.getConnection()) { + String sql1 = String.format("ALTER TABLE %s ALTER COLUMN %s %s;", "API_REQUEST_INFO", "HEADERS", "CLOB"); + try (Statement statement = connection.createStatement()) { + statement.execute(sql1); + } + String sql2 = String.format("ALTER TABLE %s ALTER COLUMN %s %s;", "API_REQUEST_INFO", "QUERY_PARAMS", "CLOB"); + try (Statement statement = connection.createStatement()) { + statement.execute(sql2); + } + } catch (Exception e) { + e.printStackTrace(); + } + apiRequestRepository.findAll().forEach(apiRequest -> { apiRequest.setHeaders(apiRequest.getHeaders().replace("=", "::"));