⏳ This skill is pending AI review.
Scores will appear once the review pipeline completes.
migrate-to-1.0
Migrates a Kotlin project from Exposed 0.61.0 to Exposed 1.0. Scans Kotlin sources and build files, applies the mechanical changes documented in the official 1.0 migration guide (package renames, JDBC module moves, SqlExpressionBuilder lambda → top-level imports, build dependency bumps), and produces a report of items that need manual review. Use when the user wants to upgrade an existing Exposed 0.61.0 project to 1.0; for older 0.x versions the skill emits a compatibility warning and proceeds only with user confirmation.
// RATINGS
// README
Welcome to Exposed, an ORM framework for Kotlin.
Exposed is a lightweight SQL library on top of a database connectivity driver for the Kotlin programming language, with support for both JDBC and R2DBC (since version 1.0.0-*) drivers. It offers two approaches for database access: a typesafe SQL-wrapping Domain-Specific Language (DSL) and a lightweight Data Access Object (DAO) API.
Our official mascot is the cuttlefish, which is well-known for its outstanding mimicry ability that enables it to blend seamlessly into any environment. Similar to our mascot, Exposed can be used to mimic a variety of database engines, which helps you to build applications without dependencies on any specific database engine and to switch between them with very little or no changes.
Supported Databases
- H2 (versions 2.x)
(Also, PostgreSQL using the pgjdbc-ng JDBC driver)
(JDBC only)
Dependencies
Releases of Exposed are available in the Maven Central repository. For details on how to configure this repository and how to add Exposed dependencies to an existing Gradle/Maven project, see the full guide on modules.
Exposed modules
Exposed consists of the following core modules:
| Module | Function |
|---|---|
exposed-core | Provides the foundational components and abstractions needed to work with databases in a type-safe manner and includes the Domain-Specific Language (DSL) API |
exposed-dao | (Optional) Allows you to work with the Data Access Object (DAO) API. It is only compatible with exposed-jdbc and does not work with exposed-r2dbc. |
exposed-jdbc | Provides support for Java Database Connectivity (JDBC) with a transport-level implementation based on the Java JDBC API |
exposed-r2dbc | Provides support for Reactive Relational Database Connectivity (R2DBC) |
As well as the following extension modules:
| Module | Function |
|---|---|
exposed-crypt | Provides additional column types to store encrypted data in the database and encode/decode it on the client-side, as well as one-way hashed data such as passwords |
exposed-java-time | Date-time extensions based on the Java 8 Time API |
exposed-jodatime | Date-time extensions based on the Joda-Time library |
exposed-json | JSON and JSONB data type extensions |
exposed-kotlin-datetime | Date-time extensions based on the kotlinx-datetime library |
exposed-migration-core | Provides core common functionality for database schema migrations |
exposed-migration-jdbc | Provides utilities to support database schema migrations, with a reliance on a JDBC driver |
exposed-migration-r2dbc | Provides utilities to support database schema migrations, with a reliance on a R2DBC driver |
exposed-money | Extensions to support MonetaryAmount from the JavaMoney API |
exposed-spring-boot-starter | A starter for Spring Boot 3 to utilize Exposed as the ORM |
exposed-spring-boot4-starter | A starter for Spring Boot 4 to utilize Exposed as the ORM |
spring-transaction | Transaction manager that builds on top of the standard tran |
// HOW IT'S BUILT
KEY FILES