2013-10-20 41 views
2

我有一個新的Grails項目進行如下設置:配置grails創建數據庫,如果它不存在。

dataSource { 
    pooled = true 
    driverClassName = "com.mysql.jdbc.Driver" 
    dialect = "org.hibernate.dialect.MySQL5InnoDBDialect" 
    username = "sa" 
    password = "" 
} 

environments { 
    development { 
     dataSource { 
      dbCreate = "create-drop" // one of 'create', 'create-drop', 'update', 'validate', '' 
      url = "jdbc:mysql://localhost/myapp?useUnicode=yes&zeroDateTimeBehavior=convertToNull&characterEncoding=UTF-8" 
      username = "root" 
      password = "" 
     } 
    } 
} 

當我運行我的應用程序失敗與錯誤:Error creating bean with name 'transactionManagerPostProcessor':

這個錯誤消失,當我手動去我的數據庫,並創建一個數據庫名爲myapp

我認爲dbCreate中的create-drop設置是假設創建數據庫,如果它不存在。

問題

如何配置這些設置,這樣,當它不會在MySQL

回答

2

存在創建數據庫本身是不切實際的,因爲它是非常特定供應商的數據庫被創建,甚至比DDL更容易創建表,序列等。您經常需要指定訪問規則,存儲選項等。

Hibernate將生成並運行schama DDL,但您必須通過創建數據庫本身來啓動進程除了簡單的數據庫之外H2。

+0

謝謝,伯特。這就說得通了。我只是想削減一步:) – Anthony

+0

試試Burt本人的優秀數據庫遷移插件。這是管理升級期間與數據庫模式操作相關的不確定性的好方法。 – loteq

相關問題