Ошибка в настройке базы данных Mysql в Grails - PullRequest
1 голос
/ 15 июля 2011

Я настроил базу данных MySql в Grails, установив MySql в моей системе и поместив его драйвер в каталог X / lib (где X - имя моего приложения). Я изменил DataSource.groovy, чтобы конфликтовать с изменениями. Но когда я запускаю свое приложение с помощью команды grails run-app, я получаю сообщение об ошибке

 ERROR spring.BeanBuilder  - WARNING: Your cache provider is set to 'com.opensymphony.oscache.hibernate.OSCacheProvider' in DataSource.groovy, however the class for this provider cannot be found.

И Grails начал использовать свою встроенную базу данных ..

Как избавиться от этой ошибки?

DataSource.groovy Код:

dataSource {
pooled = true
driverClassName = "com.mysql.jdbc.Driver"
username = "grails"
password = "server"
}
hibernate {
cache.use_second_level_cache = true
cache.use_query_cache = true
cache.provider_class =
'com.opensymphony.oscache.hibernate.OSCacheProvider'
}
// environment specific settings
environments {
development {
dataSource {
// one of 'create', 'create-drop','update'
dbCreate = "create-drop"
url = "jdbc:mysql://localhost:3306/racetrack_dev?autoreconnect=true"
}
}
test {
dataSource {
dbCreate = "update"
url = "jdbc:mysql://localhost:3306/racetrack_dev?autoreconnect=true"
}
}
production {
dataSource {
dbCreate = "update"
url = "jdbc:mysql://localhost:3306/racetrack_dev?autoreconnect=true"
}
}
}

Заранее спасибо.

1 Ответ

1 голос
/ 15 июля 2011

Какую версию grails вы используете для создания этого файла DataSource.groovy?

Grails 1.3.7 имеет спящий блок как:

hibernate {
    cache.use_second_level_cache = true
    cache.use_query_cache = true
    cache.provider_class = 'net.sf.ehcache.hibernate.EhCacheProvider'
}

Что, я думаю, объяснит ваше сообщение об ошибке? (как вы настроили использовать старый OSCacheProvider


Редактировать

Это шаги, которые я только что попробовал, и все заработало, как и ожидалось:

  1. Создать новую базу данных (я назвал мою ants)

  2. Создание приложения Grails

    grails create-app ants
    cd ants
    
  3. Отредактируйте файл grails-app/conf/BuildConfig.groovy и раскомментируйте строки:

    mavenCentral()
    

    и

    runtime 'mysql:mysql-connector-java:5.1.13'
    
  4. Редактировать файл grails-app/conf/DataSource.groovy.

    Измените блок источника данных на:

    dataSource {
        pooled = true
        driverClassName = "com.mysql.jdbc.Driver"
        username = ""
        password = ""
    }
    

    И URL (в каждой среде) на

        url = "jdbc:mysql://localhost:3306/ants?autoreconnect=true"
    
  5. Создание класса домена:

    grails create-domain-class ants.Runners
    
  6. Запустить приложение

    grails run-app
    

Тогда при проверке БД у вас будет runners таблица

Я предполагаю, что вы проверяете не ту базу данных (у вас есть dev, test и main db, по одному для каждой среды)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...