Universe ships with H2 (embedded, zero setup) and MySQL as built-in database providers. The three database extension JARs extend this set by registering additionalDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/universeclouddev/Universe/llms.txt
Use this file to discover all available pages before exploring further.
DatabaseProvider implementations at runtime. Each extension activates only when its provider key is set in ./database.json — installing the JAR alone does nothing.
All three extensions follow the same pattern: on onLoad() they inject DatabaseRegistry and call register() with a new provider instance. The core selects the active provider by matching the provider field in database.json against all registered keys at startup.
Provider Summary
| Provider | Key | Extension JAR | Built-in? |
|---|---|---|---|
| H2 (embedded) | h2 | — | Yes |
| MySQL | mysql | — | Yes |
| PostgreSQL | postgres | extension-db-postgres | No |
| MongoDB | mongodb | extension-db-mongodb | No |
| Redis | redis | extension-db-redis | No |
- PostgreSQL
- MongoDB
- Redis
PostgreSQL is a production-grade relational database well-suited for multi-node Universe clusters that require concurrent writes and advanced querying.Installation: Place
Docker Compose example:The extension uses jOOQ with the PostgreSQL dialect for all SQL operations, giving you the full range of PostgreSQL-specific features when implementing custom
extension-db-postgres.jar in ./extensions/ and set "provider": "postgres" in ./database.json../database.json:| Field | Description |
|---|---|
provider | Must be "postgres" to activate this extension |
host | PostgreSQL server hostname or IP |
port | PostgreSQL port (default: 5432) |
database | Database name |
username | Database user |
password | Database password |
DatabaseProvider subclasses.Switching Providers
To switch from one database provider to another:- Stop Universe.
- Place the new extension JAR in
./extensions/(if not already present). - Update the
"provider"field in./database.jsonto the new provider key. - Start Universe. The new provider’s
connect()method is called during startup; the old provider is never loaded.