2014-10-21 2 views
0

Grails 2.4.3과 database-migration : 1.4.0 플러그인을 사용하고 있습니다.Grails db migration 적용되지 않음

Mod라는 간단한 Domain 클래스를 만들었습니다. dbm-generate-gorm-changelog changelog.groovy을 사용하여 Groovy 기반 변경 로그를 만들 수 있습니다. 이렇게하면 파일이 올바르게 생성됩니다.

다음과
|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에에서 내 개발 환경 구성이 될 때 :

dvm-status 반환에는 데이터베이스에서 만든 테이블과 실행이없는,

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

을하지만 : 그때보고하는 dbm-update 실행

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

OK를 시작하면 멈 춥니 다. 수동으로 잠금 파일을 삭제해야만 이제는 작동합니다. 감사! –