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 をチェックインしました。データベースは存在しますが、テーブルがありません。raceとの 2 つが必要registrationです。どうすればこれを解決できますか? 私の Grails アプリの他のどの部分を見る必要があるか教えてください。

4

2 に答える 2

4

Getting Started With Grailsの古い初版を使用しています。この構文は、現在の Grails バージョンではサポートされていません。ここで入手できる第 2 版を使用してください。それはかなり時代遅れですが、はるかにうまく機能します。

また、わずか 30 ドル程度で、 Grails 2.0+をカバーする最新リリースの Grails ブックを入手できます。これは、Grails のコア開発者である Jeff Brown と Graeme Rocher の 2 人によって作成されました。

于 2013-01-08T06:55:05.343 に答える
0

GrailsにMySQLポート番号を指定していません。

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

DataSource.groovyMySQLとURLでデータベースの名前を確認してください。

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