如何在Liquibase中模仿Hibernate hbm2ddl“创建”行为?

时间:2011-04-06 23:38:58

标签: java maven-2 java-ee hbm2ddl liquibase

我已经使用了liquibase 1.9.5一段时间了,并且用它来替换hibernate hbm2ddl创建表并在其中加载fixture的策略。因为它是一个maven项目,因为我使用hsqldb(使用文件create = true),我只是在目标文件夹中创建db,这样我就可以在测试应用程序时随时拥有一个新数据库。工作正常,直到我意识到:

1 我现在需要在使用mysql数据库进行集成测试时重新创建数据库

2 对于非maven项目,我肯定需要相同的解决方案。

所以基本上如何在使用liquibase而不是hbm2ddl时删除并创建数据库?

1 个答案:

答案 0 :(得分:1)

最简单的方法是在运行sql的liquibase更新之前添加一个单独的数据库调用

DROP DATABASE X;
CREATE DATABASE X

Liquibase确实有一个dropAll命令可用于删除模式中的所有内容,但它比在mysql上删除/创建数据库慢,并且可能会遗漏一些数据库对象。