2012-07-12 68 views
0

我是新来的Grails,所以原谅我的无知 - 如果其他信息有帮助,我会尽我所能将它发布。Grails或休眠不会创建缺失的表

我创建了一个单域模型类ToolKitComponent作为被定义为:

class ToolKitComponent { 
    String componentName 
    String componentVersion 
    int componentDownloads 
    Date compnentLastUpdate 

    static constraints = { 

    } 
} 

我有一个控制器,我只想坚持一个例子来测试ORM,所以这里的控制器的内容:

def index() { 
     ToolKitComponent i = new ToolKitComponent() 
     i.setComponentName("TestComponent") 
     i.setComponentVersion("v1.10") 
     i.setComponentDownloads(1) 
     i.setCompnentLastUpdate(new Date()) 
     i.save() 
} 

我已经安装了MySQL数据库插件,并更新了我的DataSource.groovy中来:

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

// other settings 

environments { 
    development { 
     dataSource { 
      String dbCreate = "create" 
      String url = "jdbc:mysql://localhost/testDataBase" 
      String username = "myUser" 
      String password = "myPass" 
     } 
    } 
} 

我创建了数据库testDataBase并授予所有用户名。

当我运行应用程序,我得到:

Hibernate: insert into tool_kit_component (version, compnent_last_update, component_downloads, component_name, component_version) values (?, ?, ?, ?, ?) 
| Error 2012-07-11 20:01:52,727 [http-bio-8080-exec-2] ERROR util.JDBCExceptionReporter - Table "TOOL_KIT_COMPONENT" not found; SQL statement: 
insert into tool_kit_component (version, compnent_last_update, component_downloads, component_name, component_version) values (?, ?, ?, ?, ?) [42102-164] 
| Error 2012-07-11 20:01:52,752 [http-bio-8080-exec-2] ERROR errors.GrailsExceptionResolver - JdbcSQLException occurred when processing request: [GET] /TestProject/ 
Table "TOOL_KIT_COMPONENT" not found; SQL statement: 
insert into tool_kit_component (version, compnent_last_update, component_downloads, component_name, component_version) values (?, ?, ?, ?, ?) [42102-164]. Stacktrace follows: 
Message: Table "TOOL_KIT_COMPONENT" not found; SQL statement: 
insert into tool_kit_component (version, compnent_last_update, component_downloads, component_name, component_version) values (?, ?, ?, ?, ?) [42102-164] 
    Line | Method 
->> 329 | getJdbcSQLException in org.h2.message.DbException 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
| 169 | get     in  '' 
| 146 | get . . . . . . . . in  '' 
| 4753 | readTableOrView  in org.h2.command.Parser 
| 4731 | readTableOrView . . in  '' 
| 954 | parseInsert   in  '' 
| 375 | parsePrepared . . . in  '' 
| 279 | parse    in  '' 
| 251 | parse . . . . . . . in  '' 
| 217 | prepareCommand  in  '' 
| 415 | prepareLocal . . . in org.h2.engine.Session 
| 364 | prepareCommand  in  '' 
| 1121 | prepareCommand . . in org.h2.jdbc.JdbcConnection 
|  71 | <init>    in org.h2.jdbc.JdbcPreparedStatement 
| 267 | prepareStatement . in org.h2.jdbc.JdbcConnection 
| 1051 | prepareStatement in  '' 
| 508 | prepareStatement . in org.apache.commons.dbcp.DelegatingConnection 
| 400 | prepareStatement in org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper 
|  11 | index . . . . . . . in TestProject.HomeController 
| 1110 | runWorker   in java.util.concurrent.ThreadPoolExecutor 
| 603 | run . . . . . . . . in java.util.concurrent.ThreadPoolExecutor$Worker 
^ 722 | run     in java.lang.Thread 

我使用Grails 2.0.4。

任何帮助表示赞赏!

回答

2

在你的数据源定义拿走String

environments { 
    development { 
     dataSource { 
      dbCreate = "create" 
      url = "jdbc:mysql://localhost/testDataBase" 
      username = "myUser" 
      password = "myPass" 

     } 
    } 
}