1

在我的 Grails 1.3.7 应用程序中,我将域映射到旧版 Oracle 数据库。在这个基础中,我使用 GORM 将几个模式映射到我的域。它很复杂,但很有效。

我现在正在尝试创建一个不依赖于 oracle 数据库的环境,以便前端团队可以从公司外部运行应用程序。他们是外包的。因此,我考虑创建一个新的 grails 环境,将数据源指向 HSQLDB 并设置 dbCreate = "create-drop"。

我有以下错误:

hbm2ddl.SchemaExport - 无效的模式名称:语句中的 APR [创建表 APR.PLATAFORMA]

每次它尝试在启动时创建一个表。

问题是我找不到让 hibernate 创建模式的方法。我还尝试在启动时以编程方式创建架构,但没有成功。我还尝试使用 H2 INIT 属性我可以让 H2 在内存数据库中自动创建模式吗?但也没有成功。

有任何想法吗?

4

1 回答 1

0

在创建了一些 bean 后处理和破解 HSQLDialect 之后,我意识到最好的解决方案是从域中删除模式信息。

这最终导致两个数据库(HSQLDB 和 H2)都存在唯一约束问题。由于我的唯一约束是在只读类中定义的,所以我也没有费心去删除它们。

该应用程序仍在使用 oracle 数据库,但现在我可以使用内存数据库(我正在使用 HSQLDB)运行它,并且所有表都在同一架构中。

于 2013-04-09T22:17:21.370 回答