All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Room 2.6.1
- Kotlin 1.9.20
- Updated versions
- Room 2.6.0
- Updated versions
- Room 2.6.0-rc01
- Updated versions
- Room 2.6.0-beta01
- Kotlin 1.9.10
- Changed Timber > Logger
- Support for xerial 3.43.0.0 / fixed JdbcSQLiteStatement.executeInsert() to no longer use generatedKeys
- Room 2.6.0-alpha02
- Kotlin 1.8.21
- Updated documentation
- Updated other project dependencies (AGP 8.0.2/Gradle 8.1.1/Java 17/etc)
- Added proguard rules for R8
- Kotlin 1.8.10
- Room 2.5.0
- Room 2.5.0-rc01
- Room 2.5.0-beta02
- Room 2.5.0-beta01
- Room 2.5.0-alpha03
- Initial support for Room 2.5.0-alpha02
- Fix for isDatabaseIntegrityOk() to call prepareStatement
- Updated publishing in build.gradle.kts
- Kotlin 1.6.21
NOTE: If using "dbtools-room-jdbc-test", migrating to 7.1.0 will require you to add "dbtools-room-jdbc" dependency
- Added Room 2.4.1
- Added Room 2.4.0
- Kotlin 1.6.10
- Added Room 2.4.0-rc01
- Kotlin 1.6
- Improved LoggingQueryCallback to better support ? in args
- Added RoomDatabaseExtension enableJdbcTransactionSupport
- Added CursorExt.kt (Set of extension functions on Cursor to make it simpler to get and test data)
- Room 2.4.0-beta01
- Added coded to fix/prevent issues with leading newline characters in DatabaseViewQuery.viewQuery
- Added unit tests to core JDBC library
- Added ability to disable JDBC transactions (known issue as of Room 2.4.0 - bulk insert needs to be fixed (because inserts get put into multiple threads, this sometimes causes the jdbc driver to throw: "database in auto-commit mode"))
- Room 2.4.0-alpha04
- Improved logging when database corruption occurs
- Changed validateDatabaseFile(...) to use Room isDatabaseIntegrityOk()
- Added LoggingCallback - from hansenji
- Room 2.3.0
- Room 2.3.0-rc01
- Room 2.3.0-beta03
- Kotlin 1.4.31
- Room 2.3.0-beta01
- Added the ability to test Room migrations in JUnit tests (added RoomDatabaseMigrationExtension and BaseMigrationTest)
- Added LoggingQueryCallback (simple sql logger to support new Room 2.3.0 QueryCallback)
- Added AndroidSQLiteDatabase to support extended database functionality on default Android databases (AndroidSQLiteOpenHelperFactory onDatabaseConfigureBlock)
- Bug fixes
- Changed parameters from "application: Application" to "context: Context" to better support JetPack Android Hilt
- Changed dependency Xerial dependency to be compileOnly (to allow substitution of different jdbc driver... each app will need to include Xerial or other jdbc library in their projects)
- Improved view create/drop functions and extension functions
- Added support for dropping ALL views from a database
- Room 2.2.5
- Kotlin 1.3.70
- Minor patch for SqliteOrg databases (contributed by hansenji)
- Room 2.2.3
- Improved database validation checks (contributed by hansenji)
- Room 2.2.2
- Added table exist check to SQLiteDatabase.alterTableIfColumnDoesNotExist(...)
- Added RoomFlow.toFlow(...) - get notified when specific table changes happen
- Room 2.2.1
- Room 2.2.0
- Remove cancelling job in
toLiveData
since a race condition can cancel all jobs (contributed by hansenji) - Changed default coroutine dispatchers to Dispatchers.IO
- Fixed issue with alterTableIfColumnDoesNotExist(...)
- Room 2.2.0-rc01
- Added tableNameMap parameter to MergeDatabaseUtil.mergeDatabase(...)
- Improved checkAndFixRoomIdentityHash() to work better with Room 2.2.0
- Removed deprecated functions
- Minor fix to JdbcSQLiteOpenHelper
- Fixed missing dependencies
- Minor bug fixes
- Updated versions
- Room 2.1.0
- Added SupportSQLiteDatabase.runInTransaction
- Added SupportSQLiteDatabase.withTransaction (support suspend)
- AGP 3.5.0-beta04
- Room 2.1.0-rc01
- AGP 3.5.0-beta03
- Room 2.1.0-beta01
- AGP 3.5.0-beta01
- Room 2.1.0-alpha07
- Coroutines 1.2.1
- Kotlin 1.3.31 and other minor version updates
- Minor fix when deleting or renaming database files
- Room 2.1.0-alpha06
- Room 2.1.0-alpha05
- Kotlin 1.3.21
- Deprecated RoomDatabaseExt.runInTransactionSuspend(block) (replaced with room-ktx withTransaction(block))
- Room 2.1.0-alpha04
- Added RoomDatabaseExt.runInTransactionSuspend(block) (suspend function support)
- Kotlin 1.3.20
- Coroutines 1.1.1
- Added DatabaseUtil.checkAndFixRoomIdentityHash(...), findRoomIdentityHash(...), tableExists(...)
- Added JdbcDatabaseUtil.alterTableIfColumnDoesNotExist(...), columnExists(...), resetRoom(...)
- Added password support to JdbcSQLiteOpenHelper
- Added onDatabaseConfigureBlock support to JdbcSQLiteOpenHelper
- Added DatabaseUtil.alterTableIfColumnDoesNotExist(...), columnExists(...), resetRoom(...)
- Added SQLiteDatabase and SqliteOrgDatabaseUtil .alterTableIfColumnDoesNotExist(...), columnExists(...), resetRoom(...)
- Room 2.1.0-alpha03
- Kotlin 1.3.11
- Initial support for Room Views (added DatabaseUtil / CloseableDatabaseWrapper / CloseableDatabaseWrapperRepository functions to create/drop/update views)
- Room 2.1.0-alpha02
- Kotlin 1.3.10
- Coroutines 1.0.1
- Kotlin 1.3.0
- Coroutines 1.0.0
- CloseableDatabaseWrapperRepository.closeDatabase() returns true/false if a database is removed
- Removed CloseableDatabaseWrapperRepository.getDatabaseOrNull()
- Changed CloseableDatabaseWrapperRepository.getDatabase() to return null instead of throwing an exception
- Added CloseableDatabaseWrapperRepository.getDatabaseOrNull()
- Room 2.0.0
- Fixed RoomDatabaseExt attach / detach
- Added RoomDatabaseExt.getAttachedDatabases() getSqliteVersion(), getVersion(), findTableRowCount(tableName)
- Added SupportSQLiteDatabaseExt.getAttachedDatabases()
- AndroidX / SDK 28
- Fixed RoomDatabaseExt applySqlFile(...) to handle comments generated by sqldiff
- Fixed RoomLiveData to not getData() if there are no observers
- Improved support to configure a Room database with custom extensions (onDatabaseConfigureBlock)
- Apply SQL text files to a database (such as a sql diff file)
- Added ability to validate a database prior to connecting it to Room
- Added support for sqlite extensions (when using SqliteOrg database)
- Added RoomDatabase.tableExists(...) and SupportSQLiteDatabase.tableExists(...)
- Added ability to merge databases (MergeDatabaseUtil)
- Added RoomDatabase Kotlin extensions (RoomDatabaseExt)
- Added SupportSQLiteDatabase Kotlin extensions (SupportSQLiteDatabaseExt)
- Room 1.1.1
- Updated other project versions
- Added RoomLiveData.toLiveData(...)
- ClosableDatabaseManager to ClosableDatabaseWrapper
- Added ClosableDatabaseWrapperRepository
- Added DatabaseUtil: validateDatabase(...), deleteDatabaseFiles(...), renameDatabaseFiles(...)
- Create helper to run migration unit tests locally in the JVM
- Removed DynamicQueryDao
- Room 1.1.0
- Room 1.1.0-rc1
- Room 1.1.0-beta1
- Lifecycle 1.1.1
- Improvements to JdbcSqliteDatabase to for testing
- Fixed JdbcSqliteDatabase.getType(...)
- Room 1.1.0-alpha3
- Lifecycle 1.1.0
- Removed conflicting BuildConfig (with dbtools-android)
- Support Library 27.1.0
- Fix for issue #5 JdbcMemoryCursor doesn't support nullable fields
- Updated dependency versions
- Added Support for swapping databases using new CloseableDatabaseManager (https://issuetracker.google.com/issues/64681453)
- Support Library 27.0.2
- Kotlin 1.2.0
- Changed Kotlin Standard Library to kotlin-stdlib-jdk7
- Room 1.0.0
- Android SDK 27 / Support Library 27.0.0
- Kotlin 1.1.51
- Room 1.0.0-beta1
- Room 1.0.0-alpha9-1
- Room 1.0.0-alpha9
- Room 1.0.0-alpha8
- Added the ability to supply custom sqlite library loader
- Room 1.0.0-alpha7
- Added Dynamic Query support (contributed by hansenji)
- Room 1.0.0-alpha6
- Added JDBC Room support (contributed by hansenji)
- Room 1.0.0-alpha5
- Initial Release