Grails4未连接到所有数据源

Grails4未连接到所有数据源,grails,groovy,gorm,Grails,Groovy,Gorm,我正在将我们的Grails2.5应用程序升级到Grails4.0.3。无法将数据源连接到数据库。我们定义了多个数据源,我从GORM文档中复制了配置。My application.yml文件当前看起来像 dataSource: pooled: true jmxExport: true driverClassName: com.mysql.cj.jdbc.Driver username: secret password: secret dbCreate

我正在将我们的Grails2.5应用程序升级到Grails4.0.3。无法将数据源连接到数据库。我们定义了多个数据源,我从GORM文档中复制了配置。My application.yml文件当前看起来像

dataSource:
    pooled: true
    jmxExport: true
    driverClassName: com.mysql.cj.jdbc.Driver
    username: secret
    password: secret
    dbCreate: none
    url: local url here
    properties:
        jmxEnabled: true
        initialSize: 5
        maxActive: 50
        minIdle: 5
        maxIdle: 25
        maxWait: 10000
        maxAge: 600000
        timeBetweenEvictionRunsMillis: 5000
        minEvictableIdleTimeMillis: 60000
        validationQuery: SELECT 1
        validationQueryTimeout: 3
        validationInterval: 15000
        testOnBorrow: true
        testWhileIdle: true
        testOnReturn: false
        jdbcInterceptors: ConnectionState
        defaultTransactionIsolation: 2 # TRANSACTION_READ_COMMITTED

dataSources:
    foo:
        url: foo url
    bar:
        url: bar url
    baz:
        url: baz url
当我尝试启动应用程序时,我看到了与默认数据源和我的foo数据源的连接,但没有看到foo之后的任何连接。我希望看到酒吧和巴兹的连接

这里有什么我应该做的不同的事情吗,或者是其他一些可以引起这种情况的事情吗

编辑 我已经尝试更改数据源块的顺序,它总是连接到该块中列出的第一个数据源

我所有数据源之间的唯一区别是url

编辑2 我能够从头开始创建一个新的应用程序,并将数据源复制到application.yml中,然后开始工作

编辑3 我在新的测试应用程序中添加了定义所有域类的插件。我现在在这个测试应用程序中看到了相同的行为。知道是什么导致了域类的这种情况吗

编辑4(解决方案)
我首先将插件的代码复制到一个新的grails应用程序中。然后删除域类,直到我找到了罪魁祸首,其中一个类上的唯一约束不起作用!继承层次结构是一个奇怪的例子,如果我有机会,我会写一个简单的演示,看看是否可以重现这个问题。我更改了唯一约束,并能够启动应用程序。

假设所有4个数据源(
dataSource
foo
bar
、和
baz
)都共享除url之外的所有相同设置,您在那里看到的看起来是正确的。有趣的是,
foo
起作用了。如果您更改了配置文件中的顺序,并且删除了
foo
其他URL中的一个是否可以正常工作,那么知道这一点很有意思。另一个信息是,这些URL是否共享一个驱动程序类。是的,它们都是MySQL数据源。是的,我试过改变数据源的顺序,它总是第一个连接的。我不明白这是怎么回事,但我相信你。如果您使用演示该问题的示例应用程序在提交问题,我们可以进行调查。谢谢您的反馈。@JeffScottBrown刚刚从头开始尝试了一个全新的Grails 4.0.3应用程序,并粘贴到了我的数据源中。Thtatworks和我可以看到数据库级别的所有连接。必须在旧代码中保留一些会弄乱某些内容的内容。假设所有4个数据源(
dataSource
foo
bar
、和
baz
)都共享除url之外的所有相同设置,那么您所拥有的内容看起来是正确的。有趣的是,
foo
起作用了。如果您更改了配置文件中的顺序,并且删除了
foo
其他URL中的一个是否可以正常工作,那么知道这一点很有意思。另一个信息是,这些URL是否共享一个驱动程序类。是的,它们都是MySQL数据源。是的,我试过改变数据源的顺序,它总是第一个连接的。我不明白这是怎么回事,但我相信你。如果您使用演示该问题的示例应用程序在提交问题,我们可以进行调查。谢谢您的反馈。@JeffScottBrown刚刚从头开始尝试了一个全新的Grails 4.0.3应用程序,并粘贴到了我的数据源中。Thtatworks和我可以看到数据库级别的所有连接。一定是旧代码中有什么东西弄乱了。