From 522c135ed26bac06ff32b5ca301c254320b60d12 Mon Sep 17 00:00:00 2001 From: mooncw Date: Fri, 2 Feb 2024 19:58:01 +0900 Subject: [PATCH] mul-ci --- domain-mysql/build.gradle | 1 + .../domainmysql/config/FlywayConfig.java | 38 +++++++++++ .../{ => db}/migration/V1.0__init_table.sql | 0 .../migration/V1.1__add_initial_data.sql | 0 .../migration/V1.2__add_initial_data.sql | 0 .../{ => db}/migration/V1.3__add_table.sql | 0 .../{ => db}/migration/V1.4__alter_table.sql | 0 .../db/migration/V1.5__alter_table.sql | 5 ++ .../resources/migration/V1.5__alter_table.sql | 2 - member-api/src/test/resources/application.yml | 63 ++++++++----------- 10 files changed, 71 insertions(+), 38 deletions(-) create mode 100644 domain-mysql/src/main/java/com/kernelsquare/domainmysql/config/FlywayConfig.java rename domain-mysql/src/main/resources/{ => db}/migration/V1.0__init_table.sql (100%) rename domain-mysql/src/main/resources/{ => db}/migration/V1.1__add_initial_data.sql (100%) rename domain-mysql/src/main/resources/{ => db}/migration/V1.2__add_initial_data.sql (100%) rename domain-mysql/src/main/resources/{ => db}/migration/V1.3__add_table.sql (100%) rename domain-mysql/src/main/resources/{ => db}/migration/V1.4__alter_table.sql (100%) create mode 100644 domain-mysql/src/main/resources/db/migration/V1.5__alter_table.sql delete mode 100644 domain-mysql/src/main/resources/migration/V1.5__alter_table.sql diff --git a/domain-mysql/build.gradle b/domain-mysql/build.gradle index aa426bd..866812f 100644 --- a/domain-mysql/build.gradle +++ b/domain-mysql/build.gradle @@ -40,6 +40,7 @@ dependencies { annotationProcessor "jakarta.persistence:jakarta.persistence-api" //flyway + implementation 'org.flywaydb:flyway-core' implementation 'org.flywaydb:flyway-mysql' //Test diff --git a/domain-mysql/src/main/java/com/kernelsquare/domainmysql/config/FlywayConfig.java b/domain-mysql/src/main/java/com/kernelsquare/domainmysql/config/FlywayConfig.java new file mode 100644 index 0000000..a257e9a --- /dev/null +++ b/domain-mysql/src/main/java/com/kernelsquare/domainmysql/config/FlywayConfig.java @@ -0,0 +1,38 @@ +package com.kernelsquare.domainmysql.config; + +import jakarta.annotation.PostConstruct; +import org.flywaydb.core.Flyway; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.orm.jpa.JpaVendorAdapter; +import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean; + +import javax.sql.DataSource; + +@Configuration +public class FlywayConfig { + + @Autowired + private DataSource dataSource; + + @PostConstruct + public void migrateFlyway() { + Flyway flyway = Flyway.configure() + .dataSource(dataSource) + .load(); + + flyway.repair(); + + flyway.migrate(); + } + + @Bean + public LocalContainerEntityManagerFactoryBean entityManagerFactory(DataSource dataSource, JpaVendorAdapter jpaVendorAdapter) { + LocalContainerEntityManagerFactoryBean emfb = new LocalContainerEntityManagerFactoryBean(); + emfb.setDataSource(dataSource); + emfb.setPackagesToScan("com.kernelsquare.domainmysql"); + emfb.setJpaVendorAdapter(jpaVendorAdapter); + return emfb; + } +} \ No newline at end of file diff --git a/domain-mysql/src/main/resources/migration/V1.0__init_table.sql b/domain-mysql/src/main/resources/db/migration/V1.0__init_table.sql similarity index 100% rename from domain-mysql/src/main/resources/migration/V1.0__init_table.sql rename to domain-mysql/src/main/resources/db/migration/V1.0__init_table.sql diff --git a/domain-mysql/src/main/resources/migration/V1.1__add_initial_data.sql b/domain-mysql/src/main/resources/db/migration/V1.1__add_initial_data.sql similarity index 100% rename from domain-mysql/src/main/resources/migration/V1.1__add_initial_data.sql rename to domain-mysql/src/main/resources/db/migration/V1.1__add_initial_data.sql diff --git a/domain-mysql/src/main/resources/migration/V1.2__add_initial_data.sql b/domain-mysql/src/main/resources/db/migration/V1.2__add_initial_data.sql similarity index 100% rename from domain-mysql/src/main/resources/migration/V1.2__add_initial_data.sql rename to domain-mysql/src/main/resources/db/migration/V1.2__add_initial_data.sql diff --git a/domain-mysql/src/main/resources/migration/V1.3__add_table.sql b/domain-mysql/src/main/resources/db/migration/V1.3__add_table.sql similarity index 100% rename from domain-mysql/src/main/resources/migration/V1.3__add_table.sql rename to domain-mysql/src/main/resources/db/migration/V1.3__add_table.sql diff --git a/domain-mysql/src/main/resources/migration/V1.4__alter_table.sql b/domain-mysql/src/main/resources/db/migration/V1.4__alter_table.sql similarity index 100% rename from domain-mysql/src/main/resources/migration/V1.4__alter_table.sql rename to domain-mysql/src/main/resources/db/migration/V1.4__alter_table.sql diff --git a/domain-mysql/src/main/resources/db/migration/V1.5__alter_table.sql b/domain-mysql/src/main/resources/db/migration/V1.5__alter_table.sql new file mode 100644 index 0000000..1828193 --- /dev/null +++ b/domain-mysql/src/main/resources/db/migration/V1.5__alter_table.sql @@ -0,0 +1,5 @@ +ALTER TABLE `chat_room` + ADD COLUMN `expiration_date` datetime NOT NULL DEFAULT '2099-12-31T00:00:00'; + +ALTER TABLE `chat_room` + MODIFY `expiration_date` datetime NOT NULL; \ No newline at end of file diff --git a/domain-mysql/src/main/resources/migration/V1.5__alter_table.sql b/domain-mysql/src/main/resources/migration/V1.5__alter_table.sql deleted file mode 100644 index a835430..0000000 --- a/domain-mysql/src/main/resources/migration/V1.5__alter_table.sql +++ /dev/null @@ -1,2 +0,0 @@ -ALTER TABLE `chat_room` - ADD COLUMN `expiration_date` datetime NOT NULL; diff --git a/member-api/src/test/resources/application.yml b/member-api/src/test/resources/application.yml index c4b79ab..cbb3513 100644 --- a/member-api/src/test/resources/application.yml +++ b/member-api/src/test/resources/application.yml @@ -1,63 +1,49 @@ spring: datasource: - # ToDo service test 부분 mocking 작업이 끝나면 추가 작업할 예정 - # url: ${TEST_DB_URL} - # url: jdbc:h2:mem:test_kernel_square;MODE=MySQL - url: jdbc:h2:mem:test_kernel_square - driver-class-name: org.h2.Driver - username: ${LOCAL_DB_HOST} - password: ${LOCAL_DB_PASSWORD} - - flyway: - enabled: false - - security: - jwt: - header: Authorization - secret: ${JWT_SECRET_KEY} - access-token-validity-in-seconds: 3600 # 1시간 - refresh-token-validity-in-seconds: 1_209_600 # 2주 + url: ${TEST_DB_URL}?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC&characterEncoding=UTF-8 + driver-class-name: com.mysql.cj.jdbc.Driver + username: ${TEST_DB_HOST} + password: ${TEST_DB_PASSWORD} jpa: hibernate: - ddl-auto: create + ddl-auto: none properties: hibernate: - # show-sql: true format_sql: true - # dialect: org.hibernate.dialect.MySQL5InnoDBDialect - database-platform: org.hibernate.dialect.H2Dialect + database: mysql - defer-datasource-initialization: true - - sql: - init: - mode: never + database-platform: org.hibernate.dialect.MySQL8Dialect jackson: property-naming-strategy: SNAKE_CASE - # data: - # redis: - # host: localhost - # port: 6380 - redis: serialization: class-property-type-name: RefreshToken.class + data: + mongodb: + uri: ${MONGO_TEST_URI} + + security: + jwt: + header: Authorization + secret: ${JWT_SECRET_KEY} + access-token-validity-in-seconds: 3600 # 1시간 + refresh-token-validity-in-seconds: 1_209_600 # 2주 + + flyway: + enabled: false + baseline-on-migrate: true + logging.level: org.hibernate.SQL: debug # org.hibernate.type: trace org.springframework.security: debug -custom: - domain: - image: - baseUrl: ${BASE_URL} - cloud: aws: s3: @@ -67,3 +53,8 @@ cloud: credentials: accessKey: ${AWS_ACCESS_KEY} secretKey: ${AWS_ACCESS_SECRET} + +custom: + domain: + image: + baseUrl: ${BASE_URL} \ No newline at end of file