3

我使用 liquibase 1.9.5 已经有一段时间了,并让它取代了 hibernate hbm2ddl 策略,即在其中创建表和加载固定装置。因为它是一个 maven 项目并且因为我使用 hsqldb(使用文件 create=true),所以我只需在目标文件夹中创建 db,以便在我测试应用程序的任何时候都有一个新的数据库。工作正常,直到我意识到:

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

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

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

4

1 回答 1

1

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

DROP DATABASE X;
CREATE DATABASE X

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

于 2011-04-15T19:44:52.953 回答