Grails生成的war文件忽略dataSource URL

时间:2009-09-12 17:33:46

标签: tomcat grails war-filedeployment

Grails版本:1.1

Tomcat版本: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

        }

    }

 }  

2 个答案:

答案 0 :(得分: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
}
        }

答案 1 :(得分:0)

您在看什么证据表明Grails忽略了您的数据源?

在运行Grails创建mydb,添加“usr”和“pwd”用户以及GRANT适当权限之前,您是否进入MySQL? Grails不会为你做那件事。

数据库存在后,Grails将为您创建架构。您应该能够登录,使用mydb和“show tables”来查看架构。

但你必须先创建数据库。