2013-11-21 102 views
1

我有一個非常簡單的領域類Grails的H2數據庫中創建表

class Person { 

    String code 

} 

而且我也使用缺省數據源配置:

dataSource { 
    pooled = true 
    driverClassName = "org.h2.Driver" 
    username = "sa" 
    password = "" 
} 
hibernate { 
    cache.use_second_level_cache = true 
    cache.use_query_cache = false 
    cache.region.factory_class = 'net.sf.ehcache.hibernate.EhCacheRegionFactory' 
} 
// environment specific settings 
environments { 
    development { 
    dataSource { 
     dbCreate = "create-drop" // one of 'create', 'create-drop', 'update', 'validate', '' 
     url = "jdbc:h2:mem:devDb;MVCC=TRUE;LOCK_TIMEOUT=10000" 
     dialect = "org.hibernate.dialect.H2Dialect" 
    } 
    } ... 

但是當我打開/ DBCONSOLE然後我看到DB是空着,沒有桌子。爲什麼?我做錯了什麼?

回答

5

當您打開dbconsole時,您必須確保其讀取正確的數據庫。

在您的url部分中,將dbconsole指向您的應用正在使用的網址。你的情況:

jdbc:h2:mem:devDb;MVCC=TRUE;LOCK_TIMEOUT=10000 
0

我的項目我使用MySQL和我的數據源看起來像

dataSource { 
    pooled = true 
    driverClassName = "com.mysql.jdbc.Driver" 
    loggingSql = false 
    properties { 
     validationQuery="select 1" 
     testWhileIdle=true 
     timeBetweenEvictionRunsMillis=60000 
    } 
} 
hibernate { 
    cache.use_second_level_cache = false 
    cache.use_query_cache = false 
    cache.provider_class = 'net.sf.ehcache.hibernate.EhCacheProvider' 
    generate_statistics = false 
} 
// environment specific settings 
environments { 
    development { 
    dataSource { 
     dbCreate = "update" // one of 'create', 'create-drop','update' 
     url="jdbc:mysql://localhost:3306/my_db" 
     username="XXX" 
     password="XXXXXX" 
    } 

    }  


} 

而且這種配置工作正常

0

如果您正在運行在開發模式Grails和更改我相信,如果默認設置就位,他們將不會承諾H2數據庫。您需要以生產模式運行應用程序,或更改某些配置屬性以查看DBConsole中的更新信息。
Similar StackOverflow Question