如何在Grails3/Postgres中配置Flyway?
我正在尝试使用Flyway为我的Grails3.2.8应用程序运行迁移。根据您的想法,您只需向build.gradle添加一个依赖项:如何在Grails3/Postgres中配置Flyway?,grails,flyway,Grails,Flyway,我正在尝试使用Flyway为我的Grails3.2.8应用程序运行迁移。根据您的想法,您只需向build.gradle添加一个依赖项: dependencies { compile "org.flywaydb:flyway-core:4.1.2" } 由于我希望Flyway生成我的模式,我还编辑了application.yml,使其不生成域对象。如果我没有这个设置,Grails将生成我的表,而不是Flyway environments: development: d
dependencies {
compile "org.flywaydb:flyway-core:4.1.2"
}
由于我希望Flyway生成我的模式,我还编辑了application.yml,使其不生成域对象。如果我没有这个设置,Grails将生成我的表,而不是Flyway
environments:
development:
dataSource:
dbCreate: none
我还将迁移文件添加到:
grails-app
conf
db
migration
V1__create_tables.sql
我在这里还看到()可以进行一些额外的配置,因此我将其添加到application.yml中:
flyway:
enabled: true
locations: classpath:grails-app/conf/db/migration
sql-migration-prefix: V
sql-migration-suffix: .sql
我也尝试过,没有添加任何配置。我似乎遗漏了什么?flyway的spring boot自动配置默认情况下依赖于自动配置时可用的单个
数据源
参考文献
但是,如果gorm定义了grails数据源
,则情况并非如此——这是在引导自动配置之后发生的
一种可能的解决方案是定义一个充当flyway数据源的“别名”DataSource
bean,将其委托给gorm/grails定义的数据源
@Configuration
class FlywayConfig {
@Autowired
DataSource dataSource
@Bean
@FlywayDataSource
DataSource flywayDataSource() {
return dataSource
}
}
样本:检查
访问(jdbc:h2:mem:devDb
)您应该会看到TEST
表已经创建。您可以尝试将位置:classpath:grails-app/conf/db/migrate
更改为位置:grails-app/conf/db/migrate
编写“实用grails 3”的@erichelgeson吗?在这种情况下,我喜欢今天收到的更新。:-)谢谢你的建议,但没用。当我运行应用程序时,我希望Flyway能够运行迁移,但迁移没有运行。同样,我会尝试将它完全移出grails应用程序。虽然我没有使用Flyway,但似乎大多数用户都将其放在src或其他位置。还有,看看他们是手动设置bean的,你可能想看看你的bean是否被创建了,是的,这会使它更像是在Rails中工作的。Grails内置了很多很好的预配置功能,但是工具箱中肯定没有db迁移。非常好的答案。这些说明需要添加到。谢谢zyro。如果你能帮助一个哑巴?代码如何适应多个数据源?