Java 如何使用postgresql initdb创建临时数据库?
如何使用Java 如何使用postgresql initdb创建临时数据库?,java,postgresql,integration-testing,jboss-arquillian,postgresql-initdb,Java,Postgresql,Integration Testing,Jboss Arquillian,Postgresql Initdb,如何使用initdb为PostgreSQL创建临时数据库?另外,如何使用虚拟数据填充它,以及如何在使用后删除它 我有一个完整的数据库模式。我不想一个接一个地创建临时表。使用initdb,我希望能够给出模式并获得一个包含表的数据库,等等 这用于运行spring引导应用程序的集成测试。我使用mybatis访问数据库 我可以使用像arquillian这样的任何其他工具吗?有一种解决方法,只要将数据目录更改为RAM文件系统,就像这样,一旦重新启动计算机,数据就会消失。最好不要更改脚本中的任何内容。看看H
initdb
为PostgreSQL创建临时数据库?另外,如何使用虚拟数据填充它,以及如何在使用后删除它
我有一个完整的数据库模式。我不想一个接一个地创建临时表。使用initdb
,我希望能够给出模式并获得一个包含表的数据库,等等
这用于运行spring引导应用程序的集成测试。我使用mybatis访问数据库
我可以使用像arquillian这样的任何其他工具吗?有一种解决方法,只要将数据目录更改为RAM文件系统,就像这样,一旦重新启动计算机,数据就会消失。最好不要更改脚本中的任何内容。看看H2数据库。Postgres中没有“临时数据库”这样的东西。initdb创建一个完整的“集群”(也称为“实例”),而不是一个数据库。如果需要临时表,只需运行必要的
create temporary table
statements@Zorglube . 我不知道有多少这样的东西。@horse没有名字,至少应该有一种方法来模拟临时数据库的场景。@tarunmagni,你不能用H2完全模拟PostgresSQL。为了进行一些数据库模拟,我建议您使用JUnitJUnit
()+H2
()+DBSetup
()或DBUnit
();这可能不是最好的软件包,但它是一个有效的软件包。你说的“最好不要更改脚本中的任何内容”是什么意思。我可以在CI中这样做吗?这似乎是一个相当危险的解决方案,但为什么不呢。最后数据库将在RAM中。我的意思是“更好的…脚本”,即您不会更改创建表的脚本和向其中插入数据的脚本。这个用例只是用于测试,CI是关于测试的。