2014-10-21 2 views
0

Я использую Grails 2.4.3 и плагин Database-migration: 1.4.0.Переход Grails db не применяется

Я создал простой класс домена под названием Mod. Я могу создать строчный журнал изменений, используя dbm-generate-gorm-changelog changelog.groovy. Это правильно генерирует файл. Затем я выполняю dbm-update, который сообщает:

|Starting dbm-update for database sa @ jdbc:h2:mem:devDb;MVCC=TRUE;LOCK_TIMEOUT=10000 
|Finished dbm-update 

Однако нет ни одной таблицы в базе данных создается и работает dvm-status возвращается:

|Starting dbm-status for database sa @ jdbc:h2:mem:devDb;MVCC=TRUE;LOCK_TIMEOUT=10000;DB_CLOSE_ON_EXIT=FALSE 
1 change sets have not been applied to [email protected]:h2:mem:devDb 
    changelog.groovy::1413897188349-1::clarkrichey (generated) 
|Finished dbm-status 

Моя разработка конфигурации среды от DataSource.groovy выглядит следующим образом:

development { 
     dataSource { 
//   dbCreate = "create-drop" // one of 'create', 'create-drop', 'update', 'validate', '' 
      url = "jdbc:h2:mem:devDb;MVCC=TRUE;LOCK_TIMEOUT=10000;DB_CLOSE_ON_EXIT=FALSE" 
     } 
    } 

ответ

1

Проблема связана с тем, что вы используете экземпляр h2 в памяти. Таким образом, ничего не сохраняется между запусками приложений. Если вы хотите, чтобы постоянная база данных изменила ваш URL-адрес на использование экземпляра на основе файла.

development { 
    dataSource { 
    dbCreate = "none" // one of 'create', 'create-drop', 'update', 'validate', '' 
    url = "jdbc:h2:file:/path/to/save/to/devDb;MVCC=TRUE;LOCK_TIMEOUT=10000;DB_CLOSE_ON_EXIT=FALSE" 
    } 
} 
+0

ОК. Поэтому я попробовал этот url: jdbc: h2: devDb; MVCC = TRUE; LOCK_TIMEOUT = 10000; DB_CLOSE_ON_EXIT = FALSE , который, согласно http://h2database.com/html/cheatSheet.html, должен создать devdb в рабочем каталоге. Однако команда dvm-update просто зависает при запуске dbm-update –

+1

ОК. Мне пришлось вручную удалить файл блокировки, и теперь он работает. Благодаря! –

Смежные вопросы