2

Grails 版本:1.1

雄猫版本:5.5

问题:应用程序不使用 URL 数据源。

看起来 - 它正在使用其他一些数据源 - 但它似乎不在内存数据库中 - 因为我可以看到数据在会话之间持续存在。

我什至尝试给出一个不存在的数据库名称 - 并且应用程序工作正常。我的意思是我能够持久化数据并很好地获取它 - 在应用程序中我无法弄清楚数据在哪里被持久化!

我使用命令 grails war 生成了 war 文件

这就是 dataSource 配置的样子

 dataSource {

    pooled = true

    driverClassName = "com.mysql.jdbc.Driver"

    username = "user"

    password = "pwd"

 }

 hibernate {

    cache.use_second_level_cache=true

    cache.use_query_cache=true

    cache.provider_class='com.opensymphony.oscache.hibernate.OSCacheProvider'

 }

 environments {

    production {

        dataSource {

            dbCreate = "create" 

            url = "jdbc:mysql://localhost:3307/mydb?autoReconnect=true"

            dialect = org.hibernate.dialect.MySQL5Dialect

        }

    }

 }  
4

2 回答 2

2

您需要设置生产数据源,因为这是 grails 在生成战争时使用的。


development {

        dataSource {

                dbCreate = "create" 

                url = "jdbc:mysql://localhost:3307/mydb?autoReconnect=true"

                dialect = org.hibernate.dialect.MySQL5Dialect
}
        }

production {

        dataSource {

                dbCreate = "create" 

                url = "jdbc:mysql://localhost:3307/mydb?autoReconnect=true"

                dialect = org.hibernate.dialect.MySQL5Dialect
}
        }

于 2009-09-12T17:54:12.653 回答
0

您看到哪些证据表明 Grails 忽略了您的数据源?

在运行 Grails 以创建 mydb、添加具有“usr”和“pwd”的用户并授予适当的权限之前,您是否进入 MySQL?Grails 不会为您这样做。

一旦数据库存在,Grails 将为您创建模式。您应该能够登录、使用 mydb 并“显示表”来查看架构。

但是您必须先创建数据库。

于 2009-09-12T17:41:09.280 回答