【问题标题】:how to avoid having mongodb as default datasource when working with multiple datasources in grails 3在grails 3中使用多个数据源时如何避免将mongodb作为默认数据源
【发布时间】:2015-09-11 02:30:49
【问题描述】:

我的 application.groovy 设置为:

environments {
    development {
        mongo {
            host = 'localhost'
            port = 27107
            username = dbusername
            password = dbpassword
            databaseName = dbname
        }
        dataSources {
            dataSource {
                pooled = true
                jmxExport = true
                driverClassName = 'com.microsoft.sqlserver.jdbc.SQLServerDriver'
                dbCreate = ''
                username = dbusername
                password = dbpassword
                url = 'jdbc:sqlserver://${dbserver}:${dbport};databaseName=${dbname}'
            }
        }
    }
}

但现在我的域的所有数据源似乎都指向 mongodb,因此我无法再查询链接到 mssql db 的域。我怎样才能避免这种情况?

第二个问题虽然不是那么重要:mongodb 插件文档说要将连接配置放在环境中-> 开发 - 我想知道为什么我们不能把它放在 dataSources 中,所以它更整洁(在域中我可以指向数据源)。我试图在 dataSources 中移动配置,但没有成功!

如果我在调试器中运行 MyDomain.list() 并得到 ​​p>

result = {MongoQuery$MongoResultList@12334} size = 0

任何帮助将不胜感激,在此先感谢 深

【问题讨论】:

    标签: mongodb grails-3.0


    【解决方案1】:

    我正在尝试使用“mongodb”插件,我不确定它是否在 grails 3 中受支持。我有一些使用 gmongo 的东西。我通过 build.gradle 添加了这两个依赖项:

    compile "org.mongodb:mongo-java-driver:3.0.2"
    compile "com.gmongo:gmongo:1.5"
    

    并删除了 mongo 配置。

    environments {
        development {
            mongo {
                host = 'localhost'
                port = 27107
                username = dbusername
                password = dbpassword
                databaseName = dbname
            }
          ....
       }
    }
    

    gmongo 似乎采用默认数据库凭据。这就是我创建数据库实例的方式:

     def mongo = new GMongo()
     def db = mongo.getDB("dnName")
    

    希望这对面临类似问题的人有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-04-16
      • 1970-01-01
      • 1970-01-01
      • 2014-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多