This repository was archived by the owner on Aug 3, 2025. It is now read-only.
Repository navigation
v2.0.0
What's New in Version 2.0.0 / Migration Guide
Version 2.0.0 introduces significant updates and improvements over version 1.x. Here’s what you need to know when migrating:
-
Dual Database Support
- Before (v1.x): Only SQLDelight databases were supported.
- Now (v2.0.0): The library supports both SQLDelight and Room Multiplatform databases.
Migration: - For SQLDelight, replace the old environment providers with
SqlDelightEnvironmentProvider. - For Room, initialize using
RoomEnvironmentProvider.
-
Updated Initialization API
The API has been streamlined and unified across platforms:- Android:
Old (v1.x):New (v2.0.0):DelightSqlViewer.init( object : AndroidEnvironmentProvider { override fun getSqlDriver() = sqlDriver override fun getContext() = this@MainActivity } )
// For SQLDelight: DelightSqlViewer.init(object : SqlDelightEnvironmentProvider() { override fun getDriver() = sqlDelightDriver override fun getContext() = this@MainActivity }) // For Room: DelightSqlViewer.init(object : RoomEnvironmentProvider() { override fun getDriver() = roomDatabase override fun getContext() = this@MainActivity })
- iOS:
Old (v1.x):New (v2.0.0):let provider = IosEnvironmentProvider(sqlDriver: sqlDriver) DelightSqlViewer.shared.doInit(provider: provider)
// For SQLDelight: let provider = SqlDelightEnvironmentProvider(driver: sqlDriver) DelightSqlViewer.shared.doInit(provider: provider, isShortcutEnabled: true) // For Room: let provider = RoomEnvironmentProvider(driver: roomDatabase) DelightSqlViewer.shared.doInit(provider: provider, isShortcutEnabled: true)
- Desktop:
Old (v1.x):New (v2.0.0):DelightSqlViewer.init( object : DesktopEnvironmentProvider { override fun getSqlDriver() = sqlDriver } )
// For SQLDelight: DelightSqlViewer.init(object : SqlDelightEnvironmentProvider() { override fun getDriver() = sqlDelightDriver }) // For Room: DelightSqlViewer.init(object : RoomEnvironmentProvider() { override fun getDriver() = roomDatabase })
- Android:
-
Dependency Structure Changes
- Debug Builds:
You now need to include multiple modules:runtimecore- Choose either
sqldelight-adapterorroom-adapterdepending on your database.
- Release Builds:
Only thestubmodule is required, which helps reduce the app size.
Migration:
Update your Gradle configurations to conditionally include the full implementation for debug builds and the stub for release builds.
- Debug Builds: