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
}
}
}
答案 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”来查看架构。
但你必须先创建数据库。