Skip to content

Commit 0c089c6

Browse files
committed
Flyway migration
1 parent f1767fb commit 0c089c6

19 files changed

+243
-216
lines changed

spring-jpa-flyway/pom.xml

Lines changed: 80 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -1,74 +1,86 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3-
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
4-
<modelVersion>4.0.0</modelVersion>
5-
<parent>
6-
<groupId>org.springframework.boot</groupId>
7-
<artifactId>spring-boot-starter-parent</artifactId>
8-
<version>3.2.4</version>
9-
<relativePath/> <!-- lookup parent from repository -->
10-
</parent>
11-
<groupId>com.stacktips.app</groupId>
12-
<artifactId>spring-jpa-flyway</artifactId>
13-
<version>0.0.1-SNAPSHOT</version>
14-
<name>spring-jpa-liquibase</name>
15-
<description>Demo project for Spring Boot</description>
16-
<properties>
17-
<java.version>17</java.version>
18-
</properties>
19-
<dependencies>
20-
<dependency>
21-
<groupId>org.springframework.boot</groupId>
22-
<artifactId>spring-boot-starter-data-jpa</artifactId>
23-
</dependency>
24-
<dependency>
25-
<groupId>com.mysql</groupId>
26-
<artifactId>mysql-connector-j</artifactId>
27-
<scope>runtime</scope>
28-
</dependency>
29-
<dependency>
30-
<groupId>org.projectlombok</groupId>
31-
<artifactId>lombok</artifactId>
32-
<optional>true</optional>
33-
</dependency>
34-
<dependency>
35-
<groupId>org.springframework.boot</groupId>
36-
<artifactId>spring-boot-starter-test</artifactId>
37-
<scope>test</scope>
38-
</dependency>
39-
<dependency>
40-
<groupId>org.flywaydb</groupId>
41-
<artifactId>flyway-core</artifactId>
42-
</dependency>
3+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
4+
<modelVersion>4.0.0</modelVersion>
5+
<parent>
6+
<groupId>org.springframework.boot</groupId>
7+
<artifactId>spring-boot-starter-parent</artifactId>
8+
<version>3.2.4</version>
9+
<relativePath/> <!-- lookup parent from repository -->
10+
</parent>
11+
<groupId>com.stacktips.app</groupId>
12+
<artifactId>spring-jpa-flyway</artifactId>
13+
<version>0.0.1-SNAPSHOT</version>
14+
<name>spring-jpa-liquibase</name>
15+
<description>Demo project for Spring Boot</description>
16+
<properties>
17+
<java.version>17</java.version>
18+
<database.url>jdbc:mysql://localhost:3306/flyway_demo</database.url>
19+
<database.username>YOUR_DB_USER</database.username>
20+
<database.password>YOUR_DB_PASSWORD</database.password>
21+
</properties>
22+
<dependencies>
23+
<dependency>
24+
<groupId>org.springframework.boot</groupId>
25+
<artifactId>spring-boot-starter-web</artifactId>
26+
</dependency>
27+
<dependency>
28+
<groupId>org.springframework.boot</groupId>
29+
<artifactId>spring-boot-starter-data-jpa</artifactId>
30+
</dependency>
31+
<dependency>
32+
<groupId>com.mysql</groupId>
33+
<artifactId>mysql-connector-j</artifactId>
34+
<scope>runtime</scope>
35+
</dependency>
36+
<dependency>
37+
<groupId>org.projectlombok</groupId>
38+
<artifactId>lombok</artifactId>
39+
<optional>true</optional>
40+
</dependency>
41+
<dependency>
42+
<groupId>org.springframework.boot</groupId>
43+
<artifactId>spring-boot-starter-test</artifactId>
44+
<scope>test</scope>
45+
</dependency>
46+
<dependency>
47+
<groupId>org.flywaydb</groupId>
48+
<artifactId>flyway-core</artifactId>
49+
<version>10.11.0</version>
50+
</dependency>
51+
<dependency>
52+
<groupId>org.flywaydb</groupId>
53+
<artifactId>flyway-mysql</artifactId>
54+
<version>10.11.0</version>
55+
</dependency>
56+
</dependencies>
4357

58+
<build>
59+
<plugins>
60+
<plugin>
61+
<groupId>org.flywaydb</groupId>
62+
<artifactId>flyway-maven-plugin</artifactId>
63+
<version>10.10.0</version>
64+
<configuration>
65+
<url>${database.url}</url>
66+
<user>${database.username}</user>
67+
<password>${database.password}</password>
68+
</configuration>
69+
</plugin>
4470

45-
<dependency>
46-
<groupId>org.flywaydb</groupId>
47-
<artifactId>flyway-mysql</artifactId>
48-
</dependency>
49-
<!-- <dependency>-->
50-
<!-- <groupId>org.flywaydb</groupId>-->
51-
<!-- <artifactId>flyway-maven-plugin</artifactId>-->
52-
<!-- <version>10.10.0</version>-->
53-
<!-- </dependency>-->
54-
55-
</dependencies>
56-
57-
<build>
58-
<plugins>
59-
<plugin>
60-
<groupId>org.springframework.boot</groupId>
61-
<artifactId>spring-boot-maven-plugin</artifactId>
62-
<configuration>
63-
<excludes>
64-
<exclude>
65-
<groupId>org.projectlombok</groupId>
66-
<artifactId>lombok</artifactId>
67-
</exclude>
68-
</excludes>
69-
</configuration>
70-
</plugin>
71-
</plugins>
72-
</build>
71+
<plugin>
72+
<groupId>org.springframework.boot</groupId>
73+
<artifactId>spring-boot-maven-plugin</artifactId>
74+
<configuration>
75+
<excludes>
76+
<exclude>
77+
<groupId>org.projectlombok</groupId>
78+
<artifactId>lombok</artifactId>
79+
</exclude>
80+
</excludes>
81+
</configuration>
82+
</plugin>
83+
</plugins>
84+
</build>
7385

7486
</project>

spring-jpa-flyway/src/main/java/com/stacktips/app/SpringJpaLiquibaseApplication.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,7 @@
66
@SpringBootApplication
77
public class SpringJpaLiquibaseApplication {
88

9-
public static void main(String[] args) {
10-
SpringApplication.run(SpringJpaLiquibaseApplication.class, args);
11-
}
12-
9+
public static void main(String[] args) {
10+
SpringApplication.run(SpringJpaLiquibaseApplication.class, args);
11+
}
1312
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package com.stacktips.app.controller;
2+
3+
import com.stacktips.app.model.Movie;
4+
import com.stacktips.app.repository.MovieRepository;
5+
import lombok.RequiredArgsConstructor;
6+
import org.springframework.web.bind.annotation.GetMapping;
7+
import org.springframework.web.bind.annotation.RequestMapping;
8+
import org.springframework.web.bind.annotation.RestController;
9+
10+
import java.util.List;
11+
12+
@RestController
13+
@RequestMapping(value = "/api/1.0/movies")
14+
@RequiredArgsConstructor
15+
public class MoviesController {
16+
17+
private final MovieRepository movieRepository;
18+
19+
@GetMapping()
20+
public List<Movie> getMovies() {
21+
return movieRepository.findAll();
22+
}
23+
24+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package com.stacktips.app.model;
2+
3+
import jakarta.persistence.Entity;
4+
import jakarta.persistence.GeneratedValue;
5+
import jakarta.persistence.GenerationType;
6+
import jakarta.persistence.Id;
7+
import lombok.Data;
8+
9+
@Entity
10+
@Data
11+
public class Actor {
12+
13+
@Id
14+
@GeneratedValue(strategy = GenerationType.IDENTITY)
15+
Long id;
16+
17+
String firstName;
18+
String lastName;
19+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package com.stacktips.app.model;
2+
3+
public enum ContentRating {
4+
G,
5+
PG,
6+
PG13,
7+
R,
8+
NC17
9+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package com.stacktips.app.model;
2+
3+
import jakarta.persistence.*;
4+
import lombok.Data;
5+
import java.util.Set;
6+
7+
@Entity
8+
@Data
9+
public class Movie {
10+
11+
@Id
12+
@GeneratedValue(strategy = GenerationType.IDENTITY)
13+
private Long id;
14+
private String title;
15+
private String headline;
16+
private String thumbnail;
17+
private String language;
18+
private String region;
19+
20+
@Enumerated(EnumType.STRING)
21+
private ContentRating rating;
22+
23+
@ManyToMany
24+
Set<Actor> actors;
25+
}

spring-jpa-flyway/src/main/java/com/stacktips/app/model/User.java

Lines changed: 0 additions & 37 deletions
This file was deleted.

spring-jpa-flyway/src/main/java/com/stacktips/app/model/UserProfile.java

Lines changed: 0 additions & 36 deletions
This file was deleted.

spring-jpa-flyway/src/main/java/com/stacktips/app/model/UserRole.java

Lines changed: 0 additions & 15 deletions
This file was deleted.
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package com.stacktips.app.repository;
2+
3+
import com.stacktips.app.model.Movie;
4+
import org.springframework.data.jpa.repository.JpaRepository;
5+
import org.springframework.stereotype.Repository;
6+
7+
@Repository
8+
public interface MovieRepository extends JpaRepository<Movie, Long> {
9+
10+
}

0 commit comments

Comments
 (0)