简介
当我开始撰写《高性能Java持久化》一书时,我决定在我的当前机器上安装四个数据库系统
-
Oracle XE
-
SQL Server Express Edition
-
PostgreSQL
-
MySQL
这四个关系型数据库是我们论坛、StackOverflow以及大多数JIRA问题中最常提到的。然而,这四个排名靠前的数据库是不够的,因为不时地,我们需要集成来自其他数据库系统(如Informix或DB2)的Pull Requests。
由于在单台机器上安装大量数据库并不实用,我们可以做得更好。许多数据库提供商已经为他们自己的产品生成了Docker镜像,这篇文章将向您展示我们如何轻松地启动一个Informix数据库。
在Docker上运行Informix
IBM为Informix Innovator-C和DB2 Express-C都提供了Docker镜像。
正如在Docker Hub上解释的那样,您必须使用以下命令启动容器
docker run -it --name iif_innovator_c --privileged -p 9088:9088 -p 27017:27017 -p 27018:27018 -p 27883:27883 -e LICENSE=accept ibmcom/informix-innovator-c:latest
要运行Informix Docker容器,您必须执行以下命令
docker start iif_innovator_c
启动Docker容器后,我们可以向其附加一个新的shell
docker exec -it iif_innovator_c bash
我们有一个databases.gradle
配置文件,其中包含我们用于测试的所有数据库的连接属性,对于Informix,我们有以下条目
informix : [
'db.dialect' : 'org.hibernate.dialect.InformixDialect',
'jdbc.driver': 'com.informix.jdbc.IfxDriver',
'jdbc.user' : 'informix',
'jdbc.pass' : 'in4mix',
'jdbc.url' : 'jdbc:informix-sqli://192.168.99.100:9088/sysuser:INFORMIXSERVER=dev;user=informix;password=in4mix'
]
有了这个配置,我只需要设置当前的hibernate.properties
配置文件以使用Informix
gradle clean testClasses -Pdb=informix
现在我可以直接从我的IDE运行任何Informix集成测试。
完成测试后,我使用以下命令停止Docker容器
docker stop iif_innovator_c
就这么简单!