Postgres Module
Testcontainers module for PostgresSQL
Usage example
You can start a PostgreSQL container instance from any Java application by using:
PostgreSQLContainer<?> postgres = new PostgreSQLContainer<>("postgres:9.6.12")
See Database containers for documentation and usage that is common to all relational database container types.
Testcontainers JDBC URL
- PostgreSQL:
jdbc:tc:postgresql:9.6.8:///databasename
- PostGIS:
jdbc:tc:postgis:9.6-2.5:///databasename
- TimescaleDB:
jdbc:tc:timescaledb:2.1.0-pg13:///databasename
- PGvector:
jdbc:tc:pgvector:pg16:///databasename
See JDBC for documentation.
Compatible images
PostgreSQLContainer
can also be used with the following images:
PostgreSQLContainer<?> pgvector = new PostgreSQLContainer<>("pgvector/pgvector:pg16")
PostgreSQLContainer<?> postgis = new PostgreSQLContainer<>(
DockerImageName.parse("postgis/postgis:16-3.4-alpine").asCompatibleSubstituteFor("postgres")
)
PostgreSQLContainer<?> timescaledb = new PostgreSQLContainer<>(
DockerImageName.parse("timescale/timescaledb:2.14.2-pg16").asCompatibleSubstituteFor("postgres")
)
Adding this module to your project dependencies
Add the following dependency to your pom.xml
/build.gradle
file:
testImplementation "org.testcontainers:postgresql:1.21.3"
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>postgresql</artifactId>
<version>1.21.3</version>
<scope>test</scope>
</dependency>
Hint
Adding this Testcontainers library JAR will not automatically add a database driver JAR to your project. You should ensure that your project also has a suitable database driver as a dependency.