59 lines
2.1 KiB
Java
59 lines
2.1 KiB
Java
package com.eactive.testmaster.client.service;
|
|
|
|
import com.eactive.testmaster.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);
|
|
}
|
|
String sql3 = String.format("ALTER TABLE %s ALTER COLUMN %s %s;", "API_REQUEST_INFO", "REQUEST_BODY", "CLOB");
|
|
try (Statement statement = connection.createStatement()) {
|
|
statement.execute(sql3);
|
|
}
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
|
|
apiRequestRepository.findAll().forEach(apiRequest -> {
|
|
|
|
apiRequest.setHeaders(apiRequest.getHeaders().replace("=", "::"));
|
|
apiRequest.setQueryParams(apiRequest.getQueryParams().replace("=", "::"));
|
|
|
|
apiRequestRepository.save(apiRequest);
|
|
});
|
|
|
|
}
|
|
|
|
}
|