【发布时间】:2011-04-01 07:15:53
【问题描述】:
我在使用 liquibase 和 hibernate 时遇到了一点问题。我希望 hibernate 在 hbm2ddl 设置为创建时创建架构,然后让 liquibase 使用 sql 脚本文件填充数据库。
我注意到在验证时它的行为与描述和创建时不同
尤其是在使用 hsqldb(在内存中)的测试环境中。那时我似乎是盲目的。
有没有办法让我的预期工作与 hsqldb 一起在休眠创建后填充数据库。感谢您阅读本文。
【问题讨论】:
-
应该如何在您的设置中触发 liquibase?
-
嗨帕斯卡!好吧,这有点
complex architecture,但我会尽力解释。这是3 subprojects.dblayer、servicelayer和webapp中的maven+spring+hibernate项目。所以假设testdbconfig用于测试类上下文,webapp 使用了真正的dbconfig。dblayer做 db 的东西,所以我在spring.testdbconfig中使用 liquibase 从资源文件夹(dblayer 项目)中的属性文件中选择属性,并且出于某种原因使用testdbconfig+liquibase+hsqldb+hbm2ddl=create构建 dblayer 有效。 -
所有
modules(db+service) 都在 webapp pom 中,因此它们的上下文被导入webbappconfig。集成测试使用真实配置运行,这些配置脚本在 webapps.building带有 maven 命令的 webapp 还运行集成测试,它使用真正的 configs.in webapp 属性文件中 dbconfig(不是 testconfig)的相同值,如 testconfigdbconfig+liquibase+hsqldb+hbm2ddl=create似乎没有污染数据库,所以我的集成测试失败了。尝试使用mysql,它只验证让数据填充。我解释得好吗?感谢阅读本文 -
我认为你做得相当不错,而且确实是一个复杂的设置。可悲的是,我对
liquibase+spring+hbm2ddl没有任何经验(顺便说一下,liquibase 不应该是a replacement for hbm2ddl 吗?)恐怕我在这里不会很有帮助。我想它们在testdbconfig和dbconfig之间没有任何明显的区别(因为这是判别部分)。
标签: java hibernate hsqldb liquibase