diff --git a/.github/workflows/backend_ci.yml b/.github/workflows/backend_ci.yml index ceb015d92..4b583437f 100644 --- a/.github/workflows/backend_ci.yml +++ b/.github/workflows/backend_ci.yml @@ -22,11 +22,7 @@ jobs: mysql version: ${{ secrets.MYSQL_VERSION }} mysql database: ${{ secrets.MYSQL_DATABASE }} mysql root password: ${{ secrets.MYSQL_PASSWORD }} - - - name: DB 설정 파일 가져오기 - working-directory: ./backend/src/main/resources - run: echo "${{ secrets.APPLICATION_DB_YAML }}" > application-db.yml - + - name: gradle 캐싱 uses: gradle/actions/setup-gradle@v4 @@ -36,6 +32,10 @@ jobs: java-version: 17 distribution: temurin + - name: 환경변수 주입 + run: ${{ secrets.APPLICATION_YML }} + working-directory: ./backend/src/test/resources + - name: 테스트 코드 실행 run: ./gradlew test working-directory: ./backend diff --git a/backend/.gitignore b/backend/.gitignore index d4af9460a..7aa169eb4 100644 --- a/backend/.gitignore +++ b/backend/.gitignore @@ -20,7 +20,7 @@ out/ .DS_Store ### YAML ### -application-db.yml +src/test/resources/application.yml ### compose ### docker/app/*.jar diff --git a/backend/src/main/java/codezap/global/rds/DataSourceConfig.java b/backend/src/main/java/codezap/global/rds/DataSourceConfig.java index 989cbfd99..fa1f9a6d6 100644 --- a/backend/src/main/java/codezap/global/rds/DataSourceConfig.java +++ b/backend/src/main/java/codezap/global/rds/DataSourceConfig.java @@ -21,7 +21,6 @@ @Configuration @RequiredArgsConstructor -@Profile("prod") @EnableJpaRepositories(basePackages = "codezap") public class DataSourceConfig { diff --git a/backend/src/main/resources/application-local.yml b/backend/src/main/resources/application-local.yml index e74358d99..a7bf79934 100644 --- a/backend/src/main/resources/application-local.yml +++ b/backend/src/main/resources/application-local.yml @@ -2,5 +2,28 @@ spring: output: ansi: enabled: always + datasource: + write: + jdbc-url: ${MYSQL_WRITER_URL} + username: ${MYSQL_USER} + password: ${MYSQL_PASSWORD} + driver-class-name: com.mysql.cj.jdbc.Driver + read: + jdbc-url: ${MYSQL_READER_URL} + username: ${MYSQL_USER} + password: ${MYSQL_PASSWORD} + driver-class-name: com.mysql.cj.jdbc.Driver + flyway: + enabled: false + locations: classpath:db/migration + jpa: + # open-in-view: false + hibernate: + ddl-auto: create + properties: + hibernate: + dialect: codezap.template.repository.FullTextSearchMySQLDialect + data.web.pageable.one-indexed-parameters: true + cors: allowed-origins: http://localhost:3000 diff --git a/backend/src/main/resources/application.yml b/backend/src/main/resources/application.yml index 520dec2c9..d9638774d 100644 --- a/backend/src/main/resources/application.yml +++ b/backend/src/main/resources/application.yml @@ -2,4 +2,3 @@ spring: profiles: active: - local - - db diff --git a/backend/src/test/java/codezap/global/repository/JpaRepositoryTest.java b/backend/src/test/java/codezap/global/repository/JpaRepositoryTest.java index ae0a82880..b19273b96 100644 --- a/backend/src/test/java/codezap/global/repository/JpaRepositoryTest.java +++ b/backend/src/test/java/codezap/global/repository/JpaRepositoryTest.java @@ -11,12 +11,13 @@ import codezap.global.DatabaseIsolation; import codezap.global.auditing.JpaAuditingConfiguration; +import codezap.global.rds.DataSourceConfig; @Target({ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @DataJpaTest @DatabaseIsolation -@Import(JpaAuditingConfiguration.class) +@Import({JpaAuditingConfiguration.class, DataSourceConfig.class}) @AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE) public @interface JpaRepositoryTest { } diff --git a/backend/src/test/java/codezap/template/repository/TemplateSearchJpaRepositoryTest.java b/backend/src/test/java/codezap/template/repository/TemplateSearchJpaRepositoryTest.java index 8ab41a644..5b50b71ba 100644 --- a/backend/src/test/java/codezap/template/repository/TemplateSearchJpaRepositoryTest.java +++ b/backend/src/test/java/codezap/template/repository/TemplateSearchJpaRepositoryTest.java @@ -21,6 +21,7 @@ import codezap.category.domain.Category; import codezap.category.repository.CategoryRepository; import codezap.global.auditing.JpaAuditingConfiguration; +import codezap.global.rds.DataSourceConfig; import codezap.member.domain.Member; import codezap.member.repository.MemberRepository; import codezap.tag.domain.Tag; @@ -28,7 +29,7 @@ import codezap.template.domain.Template; @DataJpaTest -@Import(JpaAuditingConfiguration.class) +@Import({JpaAuditingConfiguration.class, DataSourceConfig.class}) @AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE) @Sql(scripts = "classpath:search.sql", executionPhase = ExecutionPhase.BEFORE_TEST_CLASS) class TemplateSearchJpaRepositoryTest { diff --git a/backend/src/test/resources/application-local.yml b/backend/src/test/resources/application-local.yml deleted file mode 100644 index e74358d99..000000000 --- a/backend/src/test/resources/application-local.yml +++ /dev/null @@ -1,6 +0,0 @@ -spring: - output: - ansi: - enabled: always -cors: - allowed-origins: http://localhost:3000 diff --git a/backend/src/test/resources/application.yml b/backend/src/test/resources/application.yml deleted file mode 100644 index 520dec2c9..000000000 --- a/backend/src/test/resources/application.yml +++ /dev/null @@ -1,5 +0,0 @@ -spring: - profiles: - active: - - local - - db diff --git a/backend/src/test/resources/clear.sql b/backend/src/test/resources/clear.sql deleted file mode 100644 index 4efb79f11..000000000 --- a/backend/src/test/resources/clear.sql +++ /dev/null @@ -1,15 +0,0 @@ -DELETE FROM thumbnail; -DELETE FROM sourceCode; -DELETE FROM template_tag; -DELETE FROM tag; -DELETE FROM template; -DELETE FROM category; -DELETE FROM member; - -ALTER TABLE thumbnail ALTER COLUMN id RESTART WITH 1; -ALTER TABLE sourceCode ALTER COLUMN id RESTART WITH 1; -ALTER TABLE template_tag ALTER COLUMN template_id RESTART WITH 1; -ALTER TABLE tag ALTER COLUMN id RESTART WITH 1; -ALTER TABLE template ALTER COLUMN id RESTART WITH 1; -ALTER TABLE category ALTER COLUMN id RESTART WITH 1; -ALTER TABLE member ALTER COLUMN id RESTART WITH 1;