From b71b4db66e7d09dc85d35681b36ec1fd79ef4724 Mon Sep 17 00:00:00 2001 From: L_DelOff Date: Fri, 17 Nov 2023 09:29:19 +0300 Subject: [PATCH] Flyway --- Dockerfile | 11 +++ docker-compose.yml | 14 ++++ pom.xml | 83 ++++++++++++++++--- src/main/resources/application.yml | 16 ++-- .../V001__create_table_users.sql} | 1 + .../V002__create_table_roles.sql} | 0 .../V003__add_FK_users_to_roles.sql} | 0 .../V004__add_roles.sql} | 0 .../V005__add_anonymous_role.sql} | 0 .../V006__refactor_users_table.sql} | 0 .../V007__refactor_roles_table.sql} | 0 .../V008__add_roles.sql} | 0 .../resources/db/scripts/changelog-master.xml | 10 --- .../db/scripts/release_0_0_1/changelog.xml | 16 ---- .../00_create_schema_servermonitorbot.sql | 0 15 files changed, 102 insertions(+), 49 deletions(-) create mode 100644 Dockerfile create mode 100644 docker-compose.yml rename src/main/resources/db/{scripts/release_0_0_1/scripts/01_create_table_users.sql => migration/V001__create_table_users.sql} (90%) rename src/main/resources/db/{scripts/release_0_0_1/scripts/02_create_table_roles.sql => migration/V002__create_table_roles.sql} (100%) rename src/main/resources/db/{scripts/release_0_0_1/scripts/03_add_FK_users_to_roles.sql => migration/V003__add_FK_users_to_roles.sql} (100%) rename src/main/resources/db/{scripts/release_0_0_1/scripts/04_add_roles.sql => migration/V004__add_roles.sql} (100%) rename src/main/resources/db/{scripts/release_0_0_1/scripts/05_add_anonymous_role.sql => migration/V005__add_anonymous_role.sql} (100%) rename src/main/resources/db/{scripts/release_0_0_1/scripts/06_refactor_users_table.sql => migration/V006__refactor_users_table.sql} (100%) rename src/main/resources/db/{scripts/release_0_0_1/scripts/07_refactor_roles_table.sql => migration/V007__refactor_roles_table.sql} (100%) rename src/main/resources/db/{scripts/release_0_0_1/scripts/08_add_roles.sql => migration/V008__add_roles.sql} (100%) delete mode 100644 src/main/resources/db/scripts/changelog-master.xml delete mode 100644 src/main/resources/db/scripts/release_0_0_1/changelog.xml delete mode 100644 src/main/resources/db/scripts/release_0_0_1/scripts/00_create_schema_servermonitorbot.sql diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..e4f35b0 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,11 @@ +# Используем официальный образ OpenJDK 17 как базовый образ +FROM openjdk:17-jre-slim + +# Установка рабочей директории внутри контейнера +WORKDIR /app + +# Копируем JAR-файл приложения из локальной директории внутрь контейнера +COPY target/ServerMonitorBot-0.0.1-SNAPSHOT.jar app.jar + +# Команда для запуска Spring Boot приложения при старте контейнера +CMD ["java", "-jar", "app.jar"] \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..e0ec7fc --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,14 @@ +version: '3' +services: + app: + build: + context: . + depends_on: + - db + + db: + image: postgres:latest + environment: + POSTGRES_USER: servermonitorbot + POSTGRES_PASSWORD: servermonitorbot + POSTGRES_DB: servermonitorbot \ No newline at end of file diff --git a/pom.xml b/pom.xml index fbc64ec..60d4474 100644 --- a/pom.xml +++ b/pom.xml @@ -15,6 +15,10 @@ ServerMonitorBot 17 + 9.16.0 + ${db.url} + ${db.username} + ${db.password} @@ -51,30 +55,85 @@ org.springframework.boot spring-boot-starter-data-jpa - - org.liquibase - liquibase-core - org.postgresql postgresql + + org.flywaydb + flyway-core + ${flyway.version} + - org.springframework.boot - spring-boot-maven-plugin + org.apache.maven.plugins + maven-compiler-plugin + 3.8.1 - - - org.projectlombok - lombok - - + ${java.version} + ${java.version} + + org.flywaydb + flyway-maven-plugin + ${flyway.version} + + + migrate + deploy + + migrate + + + + + ${db.url} + ${db.username} + ${db.password} + + classpath:db/migration + + + + + com.spotify + docker-maven-plugin + 1.2.0 + + + build-image + install + + build + + + + + ServerMonitorBot + remote-docker + . + + + / + ${project.build.directory} + ${project.build.finalName}.jar + + + + + + build-image + package + + build + + + + diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 35a985d..21fe203 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -2,20 +2,14 @@ spring: application: name: ServerMonitorBot datasource: - url: jdbc:postgresql://localhost:5432/servermonitorbot - username: servermonitorbot - password: servermonitorbot + url: @db.url@ + username: @db.username@ + password: @db.password@ jpa: hibernate: ddl-auto: none - liquibase: - enabled: true - change-log: classpath:db/scripts/changelog-master.xml - url: jdbc:postgresql://localhost:5432/servermonitorbot - user: servermonitorbot - password: servermonitorbot - liquibase-schema: "liquibase" - default-schema: "servermonitorbot" + flyway: + locations: classpath:db/migration bot: name: "ServerMonitorBot" token: "token" diff --git a/src/main/resources/db/scripts/release_0_0_1/scripts/01_create_table_users.sql b/src/main/resources/db/migration/V001__create_table_users.sql similarity index 90% rename from src/main/resources/db/scripts/release_0_0_1/scripts/01_create_table_users.sql rename to src/main/resources/db/migration/V001__create_table_users.sql index 9164f99..e53a200 100644 --- a/src/main/resources/db/scripts/release_0_0_1/scripts/01_create_table_users.sql +++ b/src/main/resources/db/migration/V001__create_table_users.sql @@ -2,6 +2,7 @@ --changeset L_DelOff:create_table_users rollbackSplitStatements:true --comment: Создание таблицы пользователей +CREATE SCHEMA servermonitorbot; CREATE TABLE users ( id SERIAL PRIMARY KEY, diff --git a/src/main/resources/db/scripts/release_0_0_1/scripts/02_create_table_roles.sql b/src/main/resources/db/migration/V002__create_table_roles.sql similarity index 100% rename from src/main/resources/db/scripts/release_0_0_1/scripts/02_create_table_roles.sql rename to src/main/resources/db/migration/V002__create_table_roles.sql diff --git a/src/main/resources/db/scripts/release_0_0_1/scripts/03_add_FK_users_to_roles.sql b/src/main/resources/db/migration/V003__add_FK_users_to_roles.sql similarity index 100% rename from src/main/resources/db/scripts/release_0_0_1/scripts/03_add_FK_users_to_roles.sql rename to src/main/resources/db/migration/V003__add_FK_users_to_roles.sql diff --git a/src/main/resources/db/scripts/release_0_0_1/scripts/04_add_roles.sql b/src/main/resources/db/migration/V004__add_roles.sql similarity index 100% rename from src/main/resources/db/scripts/release_0_0_1/scripts/04_add_roles.sql rename to src/main/resources/db/migration/V004__add_roles.sql diff --git a/src/main/resources/db/scripts/release_0_0_1/scripts/05_add_anonymous_role.sql b/src/main/resources/db/migration/V005__add_anonymous_role.sql similarity index 100% rename from src/main/resources/db/scripts/release_0_0_1/scripts/05_add_anonymous_role.sql rename to src/main/resources/db/migration/V005__add_anonymous_role.sql diff --git a/src/main/resources/db/scripts/release_0_0_1/scripts/06_refactor_users_table.sql b/src/main/resources/db/migration/V006__refactor_users_table.sql similarity index 100% rename from src/main/resources/db/scripts/release_0_0_1/scripts/06_refactor_users_table.sql rename to src/main/resources/db/migration/V006__refactor_users_table.sql diff --git a/src/main/resources/db/scripts/release_0_0_1/scripts/07_refactor_roles_table.sql b/src/main/resources/db/migration/V007__refactor_roles_table.sql similarity index 100% rename from src/main/resources/db/scripts/release_0_0_1/scripts/07_refactor_roles_table.sql rename to src/main/resources/db/migration/V007__refactor_roles_table.sql diff --git a/src/main/resources/db/scripts/release_0_0_1/scripts/08_add_roles.sql b/src/main/resources/db/migration/V008__add_roles.sql similarity index 100% rename from src/main/resources/db/scripts/release_0_0_1/scripts/08_add_roles.sql rename to src/main/resources/db/migration/V008__add_roles.sql diff --git a/src/main/resources/db/scripts/changelog-master.xml b/src/main/resources/db/scripts/changelog-master.xml deleted file mode 100644 index bd90cc4..0000000 --- a/src/main/resources/db/scripts/changelog-master.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/src/main/resources/db/scripts/release_0_0_1/changelog.xml b/src/main/resources/db/scripts/release_0_0_1/changelog.xml deleted file mode 100644 index 1b0334d..0000000 --- a/src/main/resources/db/scripts/release_0_0_1/changelog.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/main/resources/db/scripts/release_0_0_1/scripts/00_create_schema_servermonitorbot.sql b/src/main/resources/db/scripts/release_0_0_1/scripts/00_create_schema_servermonitorbot.sql deleted file mode 100644 index e69de29..0000000