[BAEL-9696] - Moved persistence-related modules into the persistence folder
This commit is contained in:
+33
@@ -0,0 +1,33 @@
|
||||
package com.baeldung.flywaycallbacks;
|
||||
|
||||
import java.sql.Connection;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.flywaydb.core.api.MigrationInfo;
|
||||
import org.flywaydb.core.api.callback.BaseFlywayCallback;
|
||||
|
||||
public class ExampleFlywayCallback extends BaseFlywayCallback {
|
||||
|
||||
private Log log = LogFactory.getLog(getClass());
|
||||
|
||||
@Override
|
||||
public void afterEachMigrate(Connection connection, MigrationInfo info) {
|
||||
log.info("> afterEachMigrate");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterMigrate(Connection connection) {
|
||||
log.info("> afterMigrate");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void beforeEachMigrate(Connection connection, MigrationInfo info) {
|
||||
log.info("> beforeEachMigrate");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void beforeMigrate(Connection connection) {
|
||||
log.info("> beforeMigrate");
|
||||
}
|
||||
}
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
package com.baeldung.flywaycallbacks;
|
||||
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
|
||||
@SpringBootApplication
|
||||
public class FlywayApplication {
|
||||
|
||||
public static void main(String[] args) {
|
||||
SpringApplication.run(FlywayApplication.class, args);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
SELECT 1
|
||||
@@ -0,0 +1 @@
|
||||
SELECT 1
|
||||
@@ -0,0 +1,5 @@
|
||||
create table table_one (
|
||||
id numeric,
|
||||
name varchar(50),
|
||||
constraint pk_table_one primary key (id)
|
||||
);
|
||||
@@ -0,0 +1,5 @@
|
||||
create table table_two (
|
||||
id numeric,
|
||||
name varchar(50),
|
||||
constraint pk_table_two primary key (id)
|
||||
);
|
||||
@@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<configuration>
|
||||
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<encoder>
|
||||
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
|
||||
</pattern>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
<logger name="org.springframework" level="WARN" />
|
||||
<logger name="org.springframework.transaction" level="WARN" />
|
||||
|
||||
<!-- in order to debug some marshalling issues, this needs to be TRACE -->
|
||||
<logger name="org.springframework.web.servlet.mvc" level="WARN" />
|
||||
|
||||
<root level="INFO">
|
||||
<appender-ref ref="STDOUT" />
|
||||
</root>
|
||||
</configuration>
|
||||
+68
@@ -0,0 +1,68 @@
|
||||
package com.baeldung.flywaycallbacks;
|
||||
|
||||
import javax.sql.DataSource;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.flywaydb.core.Flyway;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.test.annotation.DirtiesContext;
|
||||
import org.springframework.test.annotation.DirtiesContext.ClassMode;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringRunner;
|
||||
|
||||
@RunWith(SpringRunner.class)
|
||||
@DirtiesContext(classMode = ClassMode.AFTER_EACH_TEST_METHOD)
|
||||
@ContextConfiguration(classes = FlywayCallbackTestConfig.class)
|
||||
public class FlywayApplicationUnitTest {
|
||||
|
||||
private Log log = LogFactory.getLog(getClass());
|
||||
|
||||
@Autowired
|
||||
private DataSource dataSource;
|
||||
|
||||
@Test
|
||||
public void migrateWithNoCallbacks() {
|
||||
logTestBoundary("migrateWithNoCallbacks");
|
||||
Flyway flyway = new Flyway();
|
||||
flyway.setDataSource(dataSource);
|
||||
flyway.setLocations("db/migration");
|
||||
flyway.migrate();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void migrateWithJavaCallbacks() {
|
||||
logTestBoundary("migrateWithJavaCallbacks");
|
||||
Flyway flyway = new Flyway();
|
||||
flyway.setDataSource(dataSource);
|
||||
flyway.setLocations("db/migration");
|
||||
flyway.setCallbacks(new ExampleFlywayCallback());
|
||||
flyway.migrate();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void migrateWithSqlCallbacks() {
|
||||
logTestBoundary("migrateWithSqlCallbacks");
|
||||
Flyway flyway = new Flyway();
|
||||
flyway.setDataSource(dataSource);
|
||||
flyway.setLocations("db/migration", "db/callbacks");
|
||||
flyway.migrate();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void migrateWithSqlAndJavaCallbacks() {
|
||||
logTestBoundary("migrateWithSqlAndJavaCallbacks");
|
||||
Flyway flyway = new Flyway();
|
||||
flyway.setDataSource(dataSource);
|
||||
flyway.setLocations("db/migration", "db/callbacks");
|
||||
flyway.setCallbacks(new ExampleFlywayCallback());
|
||||
flyway.migrate();
|
||||
}
|
||||
|
||||
private void logTestBoundary(String testName) {
|
||||
System.out.println("\n");
|
||||
log.info("> " + testName);
|
||||
}
|
||||
}
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
package com.baeldung.flywaycallbacks;
|
||||
|
||||
import javax.sql.DataSource;
|
||||
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseBuilder;
|
||||
import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType;
|
||||
|
||||
@Configuration
|
||||
public class FlywayCallbackTestConfig {
|
||||
|
||||
@Bean
|
||||
public DataSource createDatasource() {
|
||||
EmbeddedDatabaseBuilder dbBuilder = new EmbeddedDatabaseBuilder();
|
||||
return dbBuilder.setType(EmbeddedDatabaseType.H2)
|
||||
.setName("DATABASE")
|
||||
.build();
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user