From 7bf2768afc5eabe6b18ce608f988693e28c25d4f Mon Sep 17 00:00:00 2001 From: Pavel Papou Date: Mon, 28 Aug 2023 10:46:11 -0400 Subject: [PATCH] Spring-data migration - flyway migration settings - spring properties been added --- data/build.gradle | 7 +++--- .../example/data/backendapi/dto/Customer.java | 10 ++++---- data/src/main/resources/application.yaml | 24 ++++++++++++------- .../main/resources/db/migrations/v1__init.sql | 8 +++++++ 4 files changed, 34 insertions(+), 15 deletions(-) create mode 100644 data/src/main/resources/db/migrations/v1__init.sql diff --git a/data/build.gradle b/data/build.gradle index 5993a86..e797529 100644 --- a/data/build.gradle +++ b/data/build.gradle @@ -18,17 +18,18 @@ repositories { dependencies { implementation 'org.springframework.boot:spring-boot-starter-security' implementation 'org.springframework.boot:spring-boot-starter-data-jpa' -// implementation 'org.springframework.boot:spring-boot-starter-jdbc' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.security.oauth:spring-security-oauth2:2.5.2.RELEASE' implementation 'org.springframework.security:spring-security-jwt:1.1.1.RELEASE' -// implementation 'com.h2database:h2' + implementation 'org.flywaydb:flyway-mysql' + implementation 'org.flywaydb:flyway-core' + implementation 'mysql:mysql-connector-java' implementation 'org.projectlombok:lombok:1.18.26' testImplementation 'org.springframework.boot:spring-boot-starter-test' testImplementation 'org.springframework.security:spring-security-test' -// runtimeOnly 'com.h2database:h2' + runtimeOnly 'com.h2database:h2' } tasks.named('test') { diff --git a/data/src/main/java/com/example/data/backendapi/dto/Customer.java b/data/src/main/java/com/example/data/backendapi/dto/Customer.java index 555eecb..ac49478 100644 --- a/data/src/main/java/com/example/data/backendapi/dto/Customer.java +++ b/data/src/main/java/com/example/data/backendapi/dto/Customer.java @@ -1,9 +1,6 @@ package com.example.data.backendapi.dto; -import jakarta.persistence.Entity; -import jakarta.persistence.GeneratedValue; -import jakarta.persistence.GenerationType; -import jakarta.persistence.Id; +import jakarta.persistence.*; import org.springframework.security.core.GrantedAuthority; import java.util.ArrayList; @@ -13,15 +10,20 @@ /** * Client's objects with personal information */ +@Table(name = "customer") @Entity public class Customer { @Id @GeneratedValue(strategy=GenerationType.AUTO) private Long id; + @Column(name = "first_name") private String firstName; + @Column(name = "last_name") private String lastName; + @Column(name = "user_name") private String userName; + @Column(name = "password") private String password; private Collection grantedAuthoritiesList = new ArrayList<>(); diff --git a/data/src/main/resources/application.yaml b/data/src/main/resources/application.yaml index e9ca238..a2daf3f 100644 --- a/data/src/main/resources/application.yaml +++ b/data/src/main/resources/application.yaml @@ -1,12 +1,20 @@ spring: -# datasource: -# driverClassName: org.h2.Driver -# jpa: -# properties: -# hibernate: -# dialect: org.hibernate.dialect.H2Dialect -# database: -# database-platform: org.hibernate.dialect.H2Dialect + datasource: + url: jdbc:mysql://localhost:3306/flyway_migrations?useSSL=false + username: mysql + password: mysql + jpa: + hibernate: + ddl-auto: validate + properties: + hibernate: + dialect: org.hibernate.dialect.MySQL5InnoDBDialect + flyway: + baseline-on-migration: true + user: + password: + baseline-description: "Initialisation of the Customer DB" + baseline-version: 1 security: oauth2: resource: diff --git a/data/src/main/resources/db/migrations/v1__init.sql b/data/src/main/resources/db/migrations/v1__init.sql new file mode 100644 index 0000000..71d82ad --- /dev/null +++ b/data/src/main/resources/db/migrations/v1__init.sql @@ -0,0 +1,8 @@ +CREATE TABLE customer +( + id Long(20) not null AUTO_INCREMENT, + first_name varchar(50) not null, + last_name varchar(50) not null, + password varchar(50) not null, + primary key (id), +) \ No newline at end of file