CockroachDB
Use CockroachDB as the JobRunr StorageProvider - driver dependency, configuration, and version requirements.
On this page
JobRunr stores all background jobs in CockroachDB through the CockroachStorageProvider.
ImportantJobRunr requires CockroachDB v25.1 or later. Versions 24.x and lower fail due to migration script incompatibilities.
Add the driver dependency
CockroachDB is wire-compatible with PostgreSQL, so it uses the PostgreSQL JDBC driver. The latest version is on Maven Central.
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version><!-- latest version --></version>
</dependency>
implementation 'org.postgresql:postgresql' // version omitted, use latest
Configuration
If you use a framework starter, JobRunr automatically detects your existing DataSource - configure your database the usual way and you are done. CockroachDB uses the PostgreSQL driver (jdbc:postgresql://...).
HikariConfig config = new HikariConfig();
config.setJdbcUrl("jdbc:postgresql://localhost:26257/mydb");
config.setUsername("myuser");
config.setPassword("mypassword");
DataSource dataSource = new HikariDataSource(config);
JobRunr.configure()
.useStorageProvider(SqlStorageProviderFactory.using(dataSource))
.useBackgroundJobServer()
.initialize();
datasources:
default:
url: jdbc:postgresql://localhost:26257/mydb
username: myuser
password: mypassword
driver-class-name: org.postgresql.Driver
quarkus.datasource.db-kind=postgresql
quarkus.datasource.jdbc.url=jdbc:postgresql://localhost:26257/mydb
quarkus.datasource.username=myuser
quarkus.datasource.password=mypassword
spring.datasource.url=jdbc:postgresql://localhost:26257/mydb
spring.datasource.username=myuser
spring.datasource.password=mypassword
Creating the tables
By default JobRunr creates its tables automatically. If you want to create them yourself, use the DatabaseCreator or generate the SQL scripts with migration type cockroach. See Setting up an SQL database.
Next steps
- Keep the tables in their own schema: JobRunr can prefix every table it creates. See table prefix and schema.
- Using more than one database? Tell JobRunr which one it should use. See multiple databases in one application.
- Build the
StorageProvideryourself: Useful for an explicit table prefix,DatabaseOptions, or a provider JobRunr does not pick up automatically. See configuring the StorageProvider yourself.
Looking for another database? Back to the Storage overview.
