一般动作
登录
Wiki: BROPEN ▼: Document Index
»
Space: FAQ ▼: Document Index
»
Page: 启动工程时，为什么没有自动创建或更新数据库表结构
搜索
zh
页面动作
导出 ▼: 以PDF格式导出 以RTF格式导出 以HTML格式导出
更多动作 ▼: 打印预览 察看源码
欢迎进入Wiki » FAQ » 启动工程时，为什么没有自动创建或更新数据库表结构?

# 启动工程时，为什么没有自动创建或更新数据库表结构?

在2014-03-20 14:49上被李小翔修改
评论 (0) · 附件 (0) · 记录 · 信息

启动工程时，默认情况下，grails会自动创建或更新数据库表结构，如果发生没有（或仅有部分）自动创建的情况，可以依次检查以下配置。

- DataSource配置中，dbCreate没有配置，只有为 create、create-drop、update的一种时，启动时才会触发数据库 schema update
- 如果是开发环境的 run-app，并且安装了插件 BroToolkit，则可以检查一下 Config.groovy 中是否启用了 bropen.toolkit.datasource.schema.smartupdate，如果启用了的话，可以尝试删除文件 target/domainClasses.hash 再试
  （4.0.3已废弃该配置，但是默认启用了其他方式，可以尝试删除系统临时文件夹里的 "工程名_domains.cache" 文件。）
- 如果数据库是Oracle，可以检查 DataSource 中配置的用户是不是有 EXP_FULL_DATABASE 或者 IMP_FULL_DATABASE 的权限，并且是否有其他表空间的库表结构和当前应用的库表结构是一样的。（有多个表空间的开发环境很容易发生这种问题）
  这种情况下，如果是未安装插件 BroToolkit 的工程，可以收回该用户的上述两个权限。
  如果安装了 BroToolkit 插件，则可以在 DataSource 中配置对应的schema，配置示例如下：
  hibernate {
  properties {
  oracle.schame = "bropen" // 配置表空间
  oracle.nls_sort = "SCHINESE_PINYIN_M" // 按中文拼音排序
  }
  properties_auditlog { // 审计日志
  oracle.schame = "broalog"
  }
  }
  ......
  dataSource {
  configClass = bropen.toolkit.orm.HibernateConfiguration
  username = "bropen"
  ......
  }
  dataSource_auditlog {
  configClass = bropen.toolkit.orm.HibernateConfiguration
  username = "broalog"
  ......
  }

标签： grails dataSource BroToolkit
在2013-10-29 15:18上被李小翔创建

- 评论 （0）
- 附件 （0）
- 记录
- 信息

# 快速链接

- 首页
- 新闻动态
- FAQ

Copyright © 2013 北京博瑞开源软件有限公司
京ICP备12048974号