Grails数据库迁移未应用

时间:2014-10-21 13:58:00

标签: grails gorm

我正在使用Grails 2.4.3和数据库迁移:1.4.0插件。

我创建了一个名为Mod的简单Domain类。我可以使用dbm-generate-gorm-changelog changelog.groovy创建基于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 SA@jdbc: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 个答案:

答案 0 :(得分: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"
  }
}