首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Grails3 / Postgres中配置天桥?

如何在Grails3 / Postgres中配置天桥?
EN

Stack Overflow用户
提问于 2017-04-04 15:48:10
回答 1查看 768关注 0票数 2

我试图使用Flyway来运行Grails 3.2.8应用程序的迁移。根据https://flywaydb.org/documentation/plugins/grails,应该只需要向build.gradle添加一个依赖项:

代码语言:javascript
复制
dependencies {
  compile "org.flywaydb:flyway-core:4.1.2"
}

由于我希望Flyway生成我的模式,我还编辑了application.yml,使其不生成域对象。如果我没有这个设置,Grails将生成我的表,而不是天桥。

代码语言:javascript
复制
environments:
    development:
        dataSource:
            dbCreate: none

我还向以下文件添加了一个迁移文件:

代码语言:javascript
复制
grails-app
  conf
    db
      migration
        V1__create_tables.sql

我还在这里读到(https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html),一些额外的配置可以完成,所以我将其添加到application.yml中:

代码语言:javascript
复制
flyway:
  enabled: true
  locations: classpath:grails-app/conf/db/migration
  sql-migration-prefix: V
  sql-migration-suffix: .sql

我也尝试了没有任何我的附加配置。我好像漏掉了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-04 18:24:55

在默认情况下,天桥的春引导自动配置依赖于在自动配置时可用的单个DataSource bean。

参考https://github.com/spring-projects/spring-boot/blob/v1.5.2.RELEASE/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/flyway/FlywayAutoConfiguration.java#L130

但是,如果gorm定义了grails DataSource,那么情况就不是这样了--这种情况发生在引导自动配置之后。

一种可能的解决方案是定义一个“别名”DataSource bean,它充当天桥dataSource,委托给gorm/grails定义的gorm/grails。

代码语言:javascript
复制
@Configuration
class FlywayConfig {

    @Autowired
    DataSource dataSource

    @Bean
    @FlywayDataSource
    DataSource flywayDataSource() {
        return dataSource
    }

}

样本:检查https://github.com/zyro23/stackoverflow-43211960/commit/c4063c900b7f96bc9ba65c84684a14a1992ca2a5

访问http://localhost:8080/dbconsole (jdbc:h2:mem:devDb)您应该看到已经创建了TEST表。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43211960

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档