78 lines
5.1 KiB
HTML
78 lines
5.1 KiB
HTML
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>MigrationApplication.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">bootstrap</a> > <a href="index.source.html" class="el_package">com.project.authmigration</a> > <span class="el_source">MigrationApplication.java</span></div><h1>MigrationApplication.java</h1><pre class="source lang-java linenums">package com.project.authmigration;
|
|
|
|
import com.project.auth.config.persistence.MigrationProperties;
|
|
import org.flywaydb.core.Flyway;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.springframework.boot.ApplicationRunner;
|
|
import org.springframework.boot.SpringApplication;
|
|
import org.springframework.boot.SpringBootConfiguration;
|
|
import org.springframework.boot.WebApplicationType;
|
|
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
|
|
import org.springframework.boot.builder.SpringApplicationBuilder;
|
|
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
|
import org.springframework.context.ConfigurableApplicationContext;
|
|
import org.springframework.context.annotation.Bean;
|
|
import org.springframework.context.annotation.Configuration;
|
|
import org.springframework.context.annotation.Import;
|
|
|
|
import javax.sql.DataSource;
|
|
|
|
@SpringBootConfiguration
|
|
@EnableAutoConfiguration
|
|
@EnableConfigurationProperties(MigrationProperties.class)
|
|
@Import(MigrationApplication.MigrationConfiguration.class)
|
|
<span class="nc" id="L25">public class MigrationApplication {</span>
|
|
|
|
<span class="nc" id="L27"> private static final String AUTOCONFIGURATION_EXCLUSIONS = String.join(</span>
|
|
",",
|
|
"org.springframework.boot.hibernate.autoconfigure.HibernateJpaAutoConfiguration",
|
|
"org.springframework.boot.data.jpa.autoconfigure.DataJpaRepositoriesAutoConfiguration"
|
|
);
|
|
|
|
public static void main(String[] args) {
|
|
<span class="nc" id="L34"> SpringApplicationBuilder builder =</span>
|
|
new SpringApplicationBuilder(MigrationApplication.class);
|
|
<span class="nc" id="L36"> builder</span>
|
|
<span class="nc" id="L37"> .web(WebApplicationType.NONE)</span>
|
|
<span class="nc" id="L38"> .properties("spring.autoconfigure.exclude=" + AUTOCONFIGURATION_EXCLUSIONS)</span>
|
|
<span class="nc" id="L39"> .run(args);</span>
|
|
<span class="nc" id="L40"> }</span>
|
|
|
|
@Configuration(proxyBeanMethods = false)
|
|
<span class="nc" id="L43"> static class MigrationConfiguration {</span>
|
|
|
|
<span class="nc" id="L45"> private static final Logger log = LoggerFactory.getLogger(MigrationConfiguration.class);</span>
|
|
|
|
@Bean
|
|
Flyway flyway(DataSource dataSource, MigrationProperties migrationProperties) {
|
|
<span class="nc" id="L49"> return Flyway.configure()</span>
|
|
<span class="nc" id="L50"> .dataSource(dataSource)</span>
|
|
<span class="nc" id="L51"> .locations(migrationProperties.location())</span>
|
|
<span class="nc" id="L52"> .defaultSchema(migrationProperties.schema())</span>
|
|
<span class="nc" id="L53"> .schemas(migrationProperties.schema())</span>
|
|
<span class="nc" id="L54"> .load();</span>
|
|
}
|
|
|
|
@Bean
|
|
ApplicationRunner migrationRunner(
|
|
Flyway flyway,
|
|
MigrationProperties migrationProperties,
|
|
ConfigurableApplicationContext applicationContext
|
|
) {
|
|
<span class="nc" id="L63"> return args -> {</span>
|
|
<span class="nc" id="L64"> log.info(</span>
|
|
"Flyway migration app started: location={} schema={}",
|
|
<span class="nc" id="L66"> migrationProperties.location(),</span>
|
|
<span class="nc" id="L67"> migrationProperties.schema()</span>
|
|
);
|
|
<span class="nc" id="L69"> flyway.migrate();</span>
|
|
<span class="nc" id="L70"> log.info("Flyway migration app completed successfully");</span>
|
|
|
|
<span class="nc" id="L72"> int exitCode = SpringApplication.exit(applicationContext, () -> 0);</span>
|
|
<span class="nc" id="L73"> System.exit(exitCode);</span>
|
|
<span class="nc" id="L74"> };</span>
|
|
}
|
|
}
|
|
}
|
|
</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.13.202504020838</span></div></body></html> |