如何在Grails中生成数据库表?

时间:2013-01-08 06:21:19

标签: java mysql grails

我有一个我似乎无法弄清楚的错误。我是Grails的新手,我正在尝试将表格放入我的数据库。我在MySQL中创建了数据库。然后我尝试创建表,但是当我启动应用程序并单击表时,我收到以下错误:

/racetrack/race/list
Class org.h2.jdbc.JdbcSQLException
Message Table "RACE" not found;

我的DevelopmentDataSource.groovy文件如下:

class DevelopmentDataSource {
    boolean pooling = true
    String dbCreate = "update"
    String url = "jdbc:mysql://localhost/racetrack_dev"
    String driverClassName = "com.mysql.jdbc.Driver"
    String username = "ironmantis7x"
    String password = "mantismonk07"
}

我在MySQL中检查过,数据库存在,但它没有任何表格。应该有两个 - raceregistration。我该如何解决这个问题?请告诉我你需要看到我的Grails应用程序的其他部分。

2 个答案:

答案 0 :(得分:4)

您正在使用古老的第一版 Grails入门。当前的Grails版本不支持该语法。使用第二版,您可以获得here。这已经相当过时,但会更好。

只需30美元,您就可以获得最新发布的Grails书籍,其中涵盖Grails 2.0+。它由两位核心Grails开发人员Jeff Brown和Graeme Rocher撰写。

答案 1 :(得分:0)

你还没有给Grails你的MySQL端口号:

url = "jdbc:mysql://localhost:3306/racetrack?autoreconnect=true"

在MySQL和DataSource.groovy网址中检查数据库的名称。

如果在MySQL中创建名为racetrack的数据库,则您的数据源代码应如下所示:

dataSource {
    pooled = true
    driverClassName = "com.mysql.jdbc.Driver"
    username = "ironmantis7x"
    password = "mantismonk07"
}
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 = "update" // one of 'create', 'create-drop', 'update', 'validate', ''
            url = "jdbc:mysql://localhost:3306/racetrack?autoreconnect=true"
        }
    }
    test {
        dataSource {
            dbCreate = "update"
            url = "jdbc:mysql://localhost:3306/racetrack?autoreconnect=true"
        }
    }
    production {
        dataSource {
            dbCreate = "update"
            url = "jdbc:mysql://localhost:3306/racetrack?autoreconnect=true"
            pooled = true
            properties {
               maxActive = -1
               minEvictableIdleTimeMillis=1800000
               timeBetweenEvictionRunsMillis=1800000
               numTestsPerEvictionRun=3
               testOnBorrow=true
               testWhileIdle=true
               testOnReturn=true
               validationQuery="SELECT 1"
            }
        }
    }
}