将 Postgres 与 Grails 一起使用

Posted

技术标签:

【中文标题】将 Postgres 与 Grails 一起使用【英文标题】:Using Postgres with Grails 【发布时间】:2010-12-04 09:39:00 【问题描述】:

有人让 Grails 与 Postgres 一起工作吗?我用过这个tutorial,一切似乎都是有道理的,对我来说是正确的。但是,当我“grails run-app”时出现此错误

Cannot create JDBC driver of class 'org.postgresql.Driver' for connect URL 'jdbc:postgres://10.0.0.21/tribes'
java.sql.SQLException: No suitable driver

我的数据源文件是

dataSource 
    pooled = true
    driverClassName = "org.postgresql.Driver"
    dialect = org.hibernate.dialect.PostgreSQLDialect

hibernate 
    cache.use_second_level_cache=true
    cache.use_query_cache=true
    cache.provider_class='com.opensymphony.oscache.hibernate.OSCacheProvider'

// environment specific settings
environments 
    development 
        dataSource 
            dbCreate = "update"
            url = "jdbc:postgres://10.0.0.21:5432/tribes"
            username = "grails"
            password = "grails"
           
       
    test 
        dataSource 
            dbCreate = "update"
            url = "jdbc:postgres://10.0.0.21:5432/tribes"
            username = "grails"
            password = "grails"
           
       
    production 
        dataSource 
            dbCreate = "update"
            url = "jdbc:postgres://10.0.0.21:5432/tribes"
            username = "grails"
            password = "grails"
           
       

【问题讨论】:

是的。我已经尝试了几个版本,但我很确定我有一个合适的 【参考方案1】:

来自FAQ:“[如果]您收到一个运行时错误,提示“未找到合适的驱动程序”,则可能是传递给 DriverManager.getConnection 的 URL 格式不正确或不正确”。那你的有什么问题吗?好吧,教程中的示例如下所示:

jdbc:postgresql://localhost:5432/grails

你的看起来像这样:

jdbc:postgres://10.0.0.21:5432/tribes

我猜是那些少了两个字母给你带来了麻烦。

【讨论】:

【参考方案2】:

在 BuildConfig.groovy 文件中取消注释外部 maven repositories 然后添加这一行

runtime 'postgresql:postgresql:9.0-801.jdbc4'dependencies 部分

【讨论】:

这一行对于让 Grails 与 Postgresql 对话至关重要。但是,如果您已经将 Postgresql JDBC jar 复制到您的项目/lib 目录,则不需要取消注释任何外部 Maven 存储库。此外,在执行 grails run-app 之前,您需要创建在 JDBC url 中引用的数据库。 更新这个,因为它已经有一段时间没有回答了,并且postgresql驱动程序的版本已经升级。当前驱动程序(截至 2014 年 1 月)是:runtime 'org.postgresql:postgresql:9.3-1100-jdbc4' 这是针对 JDK 1.6 的。如果您仍在运行 JDK 1.5,则需要将最后一个“jdbc4”更改为“jdbc3”。欲了解更多信息,请参阅jdbc.postgresql.org/download.html

以上是关于将 Postgres 与 Grails 一起使用的主要内容,如果未能解决你的问题,请参考以下文章

如何将 must_not 与 ElasticSearch + Grails 的空 JSON 属性一起使用?

无法让 Elasticsearch 插件与 Grails 3 一起使用

无法将 postgres 与 keycloak 一起使用

无法使用 Postgres DB 启动 Grails 3.3.8 应用程序

将 Async/Await 与 node-postgres 一起使用

我如何将 Postgres DateRange 类型与 TypeOrm 一起使用