在内存数据库(HSQLDB或H2)上运行具有多个模式域的grails

时间:2013-04-08 19:03:15

标签: hibernate grails schema hsqldb h2

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

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

我遇到以下错误:

hbm2ddl.SchemaExport - 模式名称无效:语句中的APR [create table APR.PLATAFORMA]

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

问题是我找不到办法让hibernate创建模式。我还试图以编程方式在starup上创建架构,但我没有成功。我也尝试使用H2 INIT属性Can I have H2 autocreate a schema in an in-memory database?,但也没有成功。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

创建一些bean后期处理和黑客HSQLDialect后,我意识到最好的解决方案是从域中删除架构信息。

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

该应用程序仍在使用oracle数据库,但现在我可以使用内存数据库(我正在使用HSQLDB)和同一模式中的所有表来运行它。