Skip to content
Snippets Groups Projects
Commit 5f3a8bd3 authored by Mirco Nasuti's avatar Mirco Nasuti
Browse files

use flyway from Java instead of Maven

parent 63012263
No related branches found
No related tags found
No related merge requests found
......@@ -4,22 +4,8 @@ services:
backend_build:
container_name: backend_build
build: ./src/docker/build/
depends_on:
- "db"
volumes:
- ./:/opt/portal/
- .m2:/root/.m2/
ports:
- "8080:8080"
links:
- "db"
db:
container_name: db
image: postgres:9.5.3
ports:
- "5432:5432"
volumes:
- ./pgdata:/var/lib/postgresql/data/pgdata
environment:
POSTGRES_USER: postgres
PGDATA: /var/lib/postgresql/data/pgdata
......@@ -15,27 +15,45 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.2.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
<relativePath />
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<sonar.host.url>http://dockerhost:9000</sonar.host.url>
<sonar.projectName>MIP Backend</sonar.projectName>
<sonar.sources>src/main/java/</sonar.sources>
<java.version>1.8</java.version>
<asciidoctor.maven.plugin.version>1.5.3</asciidoctor.maven.plugin.version>
<asciidoctorj.pdf.version>1.5.0-alpha.11</asciidoctorj.pdf.version>
<asciidoctorj.version>1.5.4</asciidoctorj.version>
<sonar.host.url>http://dockerhost:9000</sonar.host.url>
<sonar.projectName>MIP Backend</sonar.projectName>
<sonar.sources>src/main/java/</sonar.sources>
<flyway.url>jdbc:postgresql://db:5432/postgres</flyway.url>
<flyway.user>postgres</flyway.user>
<spring-data-commons.version>1.12.2.RELEASE</spring-data-commons.version>
<angularjs.version>1.4.3</angularjs.version>
<jquery.version>2.1.1</jquery.version>
<bootstrap.version>3.2.0</bootstrap.version>
<hibernate-jpa-2.1-api.version>1.0.0.Final</hibernate-jpa-2.1-api.version>
<hibernate-core.version>4.3.8.Final</hibernate-core.version>
<hibernate-entitymanager.version>4.3.8.Final</hibernate-entitymanager.version>
<h2.version>1.4.187</h2.version>
<postgresql.version>9.4-1205-jdbc42</postgresql.version>
<springfox-swagger2.version>2.3.1</springfox-swagger2.version>
<springfox-swagger-ui.version>2.3.1</springfox-swagger-ui.version>
<gson.version>2.5</gson.version>
<slugify.version>2.1.4</slugify.version>
<spring-data-jpa.version>1.10.2.RELEASE</spring-data-jpa.version>
<maven-resources-plugin.version>2.3</maven-resources-plugin.version>
<sonar-maven-plugin.version>3.0.1</sonar-maven-plugin.version>
<swagger2markup-maven-plugin.version>1.0.0</swagger2markup-maven-plugin.version>
<maven-compiler-plugin.version>3.1</maven-compiler-plugin.version>
<hibernate4-maven-plugin.version>1.1.0</hibernate4-maven-plugin.version>
<flyway-core.version>4.0.3</flyway-core.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-commons</artifactId>
<version>1.12.2.RELEASE</version>
<version>${spring-data-commons.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
......@@ -60,17 +78,17 @@
<dependency>
<groupId>org.webjars</groupId>
<artifactId>angularjs</artifactId>
<version>1.4.3</version>
<version>${angularjs.version}</version>
</dependency>
<dependency>
<groupId>org.webjars</groupId>
<artifactId>jquery</artifactId>
<version>2.1.1</version>
<version>${jquery.version}</version>
</dependency>
<dependency>
<groupId>org.webjars</groupId>
<artifactId>bootstrap</artifactId>
<version>3.2.0</version>
<version>${bootstrap.version}</version>
</dependency>
<dependency>
<groupId>org.webjars</groupId>
......@@ -84,57 +102,62 @@
<dependency>
<groupId>org.hibernate.javax.persistence</groupId>
<artifactId>hibernate-jpa-2.1-api</artifactId>
<version>1.0.0.Final</version>
<version>${hibernate-jpa-2.1-api.version}</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.3.8.Final</version>
<version>${hibernate-core.version}</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>4.3.8.Final</version>
<version>${hibernate-entitymanager.version}</version>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.4.187</version>
<version>${h2.version}</version>
</dependency>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>9.4-1205-jdbc42</version>
<version>${postgresql.version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.3.1</version>
<version>${springfox-swagger2.version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.3.1</version>
<version>${springfox-swagger-ui.version}</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.5</version>
<version>${gson.version}</version>
</dependency>
<dependency>
<groupId>com.github.slugify</groupId>
<artifactId>slugify</artifactId>
<version>2.1.4</version>
<version>${slugify.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-jpa</artifactId>
<version>1.10.2.RELEASE</version>
<version>${spring-data-jpa.version}</version>
</dependency>
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
</dependency>
<dependency>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-core</artifactId>
<version>${flyway-core.version}</version>
</dependency>
</dependencies>
<pluginRepositories>
......@@ -161,6 +184,7 @@
<include>**/*.xml</include>
<include>**/*.json</include>
<include>**/*.csv</include>
<include>**/*.sql</include>
</includes>
<filtering>true</filtering>
</resource>
......@@ -170,7 +194,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.3</version>
<version>${maven-resources-plugin.version}</version>
<configuration>
<!-- specify UTF-8, ISO-8859-1 or any other file encoding -->
<encoding>UTF-8</encoding>
......@@ -183,7 +207,7 @@
<plugin>
<groupId>de.juplo</groupId>
<artifactId>hibernate4-maven-plugin</artifactId>
<version>1.1.0</version>
<version>${hibernate4-maven-plugin.version}</version>
<executions>
<execution>
<phase>compile</phase>
......@@ -192,21 +216,16 @@
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<version>${maven-compiler-plugin.version}</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
<plugin>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-maven-plugin</artifactId>
<version>4.0.1</version>
</plugin>
<plugin>
<groupId>io.github.swagger2markup</groupId>
<artifactId>swagger2markup-maven-plugin</artifactId>
<version>1.0.0</version>
<version>${swagger2markup-maven-plugin.version}</version>
<configuration>
<swaggerInput>http://localhost:8080/services/v2/api-docs</swaggerInput>
<outputFile>${project.build.directory}/asciidoc/api</outputFile>
......@@ -238,7 +257,7 @@
<plugin>
<groupId>org.sonarsource.scanner.maven</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>3.0.1</version>
<version>${sonar-maven-plugin.version}</version>
</plugin>
</plugins>
</build>
......
......@@ -5,6 +5,4 @@ COPY ./build-in-docker.sh /build-in-docker.sh
VOLUME /opt/portal/
WORKDIR /opt/portal/
RUN apt-get update && apt-get install -y postgresql
CMD ["bash", "/build-in-docker.sh"]
......@@ -5,20 +5,3 @@ rm -r target/
echo 'Packaging...'
mvn package
echo 'Waiting for postgres to be ready...'
until psql -h "db" -U "postgres" -c '\l'; do
>&2 echo "Postgres is unavailable - sleeping"
sleep 1
done
if [ $(psql -h "db" -U "postgres" -c "\dt" | grep schema_version | wc -l) == 0 ]; then
echo 'Generating database baseline...'
mvn flyway:baseline
fi
echo 'Migrating database...'
mvn flyway:migrate
# Uncomment to generate a PDF API documentation
# mvn swagger2markup:convertSwagger2markup asciidoctor:process-asciidoc
package org.hbp.mip.configuration;
import org.flywaydb.core.Flyway;
import org.hbp.mip.utils.CSVUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.orm.jpa.EntityScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.DependsOn;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.orm.jpa.JpaVendorAdapter;
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
......@@ -30,6 +32,7 @@ public class PersistenceConfiguration {
}
@Bean
@DependsOn("flyway")
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean();
em.setDataSource(dataSource);
......@@ -38,4 +41,12 @@ public class PersistenceConfiguration {
return em;
}
@Bean(initMethod = "migrate")
public Flyway flyway() {
Flyway flyway = new Flyway();
flyway.setBaselineOnMigrate(true);
flyway.setDataSource(dataSource);
return flyway;
}
}
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment