2009-09-12 108 views
2

的Grails版本:1.1戰爭文件忽略數據源URL

的Tomcat版本:5.5

問題: 應用程序不使用的URL數據源。

看起來好像 - 它使用了一些其他的數據源 - 但它似乎不在內存DB中 - 因爲我可以看到數據在會話之間持續存在。

我甚至試着給出一個不存在的數據庫名稱 - 並且應用程序工作正常。我的意思是,我能夠堅持數據並獲取它 - 在應用程序 我無法弄清楚數據在哪裏持續存在!

我生成使用命令 - Grails的戰爭

這是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

您是否找到解決方案?我也有同樣的問題。 – user2427 2010-04-01 23:08:46

+0

不是真的 - 過了一段時間,我停止面對這個問題。我推斷我犯了一個錯誤。但不能確認 – 2010-04-03 00:50:47

回答

0

你在找什麼證據,告訴你Grails是忽略了數據源war文件?

您是否在運行Grails創建mydb之前進入MySQL,添加具有「usr」和「pwd」的用戶,並授予適當的權限? Grails不會爲你做這件事。

一旦數據庫存在,Grails將爲您創建模式。您應該能夠登錄,使用mydb和「顯示錶」來查看架構。

但您必須先創建數據庫。

+0

1)如果我把一個不存在的服務器名稱 - 沒有錯誤 - CRUD作爲ususal 2)我使用eatj.com主持應用程序 - 我已經確認數據庫架構確實存在 3)沒有表格已創建。我可以嘗試自己創建表 - 但這不會幫助 - 因爲它似乎根本沒有使用URL – 2009-09-12 17:58:07

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 
} 
     } 

+0

對不起,這是我的排字錯誤 我有生產設置 - 與發展相同(實際上測試也是相同的)默認爲 – 2009-09-12 18:00:15

+0

Grails在構建戰爭時使用'prod'環境,如果您想覆蓋它,您可以運行'grails dev war' – 2009-09-12 18:00:15