1

我有一个我似乎无法弄清楚的错误。我是 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 应用程序的其他部分。

4

2 回答 2

4

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

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

于 2013-01-08T06:55:05.343 回答
0

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

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

在 MySQL 和DataSource.groovyURL 中检查数据库的名称。

如果您创建一个以racetrackMySQL 命名的数据库,您的数据源代码应如下所示:

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"
            }
        }
    }
}
于 2013-01-08T07:26:48.483 回答