【发布时间】:2017-09-17 04:03:23
【问题描述】:
如何使用initdb 为 PostgreSQL 创建临时数据库?另外,如何使用虚拟数据填充它,以及如何在使用后将其删除?
我有一个完整的数据库架构。我不想一一创建临时表。使用initdb,我希望能够提供架构并获得一个包含表等创建的数据库。
这是用于运行 Spring Boot 应用程序的集成测试。我使用mybatis访问数据库。
我可以使用像 arquillian 这样的任何其他工具吗?
【问题讨论】:
-
看看H2数据库。
-
Postgres 中没有“临时数据库”之类的东西。 initdb 创建一个完整的“集群”(又名“实例”),而不是数据库。如果你想要临时表,那么只需运行必要的
create temporary table语句 -
@Zorglube H2's PostgreSQL mode limitations。我不知道有多少这样的东西。
-
@a_horse_with_no_name 应该有办法至少模仿临时数据库的场景。
-
@TarunMaganti,你不能用 H2 完全模仿 PostgresSQL。顺便做一些DB模拟,我推荐你
JUnit(junit.org)+H2(h2database.com)+DBSetup(dbsetup.ninja-squad.com)或者DBUnit(dbunit.sourceforge.net);它可能不是最好的包,但它是一个工作包。
标签: java postgresql integration-testing jboss-arquillian postgresql-initdb