spring_reference/IX. ‘How-to’ guides/68.5.1. Execute Flyway data...

10 lines
1.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

### 68.5.1. 启动时执行Flyway数据库迁移
想要在启动时自动运行Flyway数据库迁移需要将`org.flywaydb:flyway-core`添加到你的classpath下。
迁移是一些`V<VERSION>__<NAME>.sql`格式的脚本(`<VERSION>`是一个下划线分割的版本号,比如'1'或'2_1')。默认情况下,它们存放在一个`classpath:db/migration`的文件夹中,但你可以使用`flyway.locations`一个列表来改变它。详情可参考flyway-core中的Flyway类查看一些可用的配置比如schemas。Spring Boot在[FlywayProperties](http://github.com/spring-projects/spring-boot/tree/master/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/flyway/FlywayProperties.java)中提供了一个小的属性集,可用于禁止迁移,或关闭位置检测。
默认情况下Flyway将自动注入`@Primary`DataSource到你的上下文并用它进行数据迁移。如果你想使用一个不同的DataSource你可以创建一个并将它标记为`@FlywayDataSource`的`@Bean`-如果你这样做了,且想要两个数据源,记得创建另一个并将它标记为`@Primary`。或者你可以通过在外部配置文件中设置`flyway.[url,user,password]`来使用Flyway的原生DataSource。
这是一个[Flyway示例](http://github.com/spring-projects/spring-boot/tree/master/spring-boot-samples/spring-boot-sample-flyway),你可以作为参考。