OctaviusDatabase

Central management and entry point for the Octavius Database framework.

This object is responsible for orchestrating the initialization of the data access layer, including connection pooling, database migrations, type discovery, and framework-level infrastructure.

Primary responsibilities:

  • DataSource Configuration: Setting up HikariCP with PostgreSQL-optimized defaults.

  • Schema Management: Coordinating optional database migrations via migrationRunner.

  • Type Discovery: Coordinating TypeRegistryLoader to scan classpath and database for custom types (ENUMs, COMPOSITEs).

  • Infrastructure Initialization: Ensuring required PostgreSQL functions (e.g., for Dynamic DTOs) are present.

Functions

Link copied to clipboard
fun fromConfig(config: DatabaseConfig, transactionProvider: JdbcTransactionProvider? = null, migrationRunner: (DataSource) -> Unit? = null): DataAccess

Initializes DataAccess from a structured DatabaseConfig.

Link copied to clipboard
fun fromDataSource(dataSource: DataSource, packagesToScan: List<String>, dbSchemas: List<String>, dynamicDtoStrategy: DynamicDtoSerializationStrategy = DynamicDtoSerializationStrategy.AUTOMATIC_WHEN_UNAMBIGUOUS, disableCoreTypeInitialization: Boolean = false, showBanner: Boolean = true, transactionProvider: JdbcTransactionProvider? = null, listenerConnectionFactory: () -> Connection? = null, migrationRunner: (DataSource) -> Unit? = null, onClose: () -> Unit? = null): DataAccess

Initializes DataAccess using an existing DataSource.