Приложение My Grails и bootstrap работают нормально, когда dbCreate="create"
, но когда я меняю его на dbCreate="update"
, я получаю ошибки создания объекта в бутстрапе. Я просто хочу, чтобы мои данные сохранялись при перезагрузке приложения. Из сообщения об ошибке, похоже, я нарушаю уникальные ограничения. Может быть, база данных не будет очищена при перезагрузке? Я пробовал "create-drop" Вот код и сообщение ниже. Любое понимание очень ценится.Почему приложение Grails не запускается, когда я устанавливаю dbCreate = "update"
development {
dataSource {
dbCreate = "create-drop" // one of 'create', 'create-drop', 'update', 'validate', ''
url = "jdbc:h2:devDb;MVCC=TRUE;LOCK_TIMEOUT=10000;"
}
}
class BootStrap {
def init = { servletContext ->
def adminRole = new com.testapp.Role(authority: 'ROLE_ADMIN').save(failOnError: true)
def userRole = new com.testapp.Role(authority: 'ROLE_USER').save(failOnError: true)
}
Сообщение:
Ошибка проверки (s) произошло во время сохранения(): - ошибка поле в объекте 'com.testapp.Role' на поле 'власти': отвергнутого значение [ROLE_ADMIN] ; коды [com.testapp.Role.authority.unique.error.
сообщений по умолчанию [Свойство [{0}] класса [{1}] со значением [{2}] должно быть уникальным
Role.findOrSave (авторитет: «ROLE_ADMIN») – albertovilches
Спасибо за ответ. Вы правы, данные все еще находятся в базе данных предыдущего цикла. Теперь я запускаю пустой init {} в bootstrap при каждом запуске. Кажется, так хорошо работает, так как я хочу сохранить данные ... Еще раз спасибо. - Дэйв – Dave