mirror of
https://github.com/Matte23/circolapp.git
synced 2025-12-06 07:29:10 +00:00
Add JVM target to shared module
This commit is contained in:
@@ -0,0 +1,7 @@
|
||||
package net.underdesk.circolapp.shared
|
||||
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
|
||||
actual object PlatformDispatcher {
|
||||
actual val IO = Dispatchers.IO
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
package net.underdesk.circolapp.shared.data
|
||||
|
||||
import com.squareup.sqldelight.db.SqlDriver
|
||||
import com.squareup.sqldelight.sqlite.driver.JdbcSqliteDriver
|
||||
|
||||
actual class DatabaseDriverFactory {
|
||||
actual fun createDriver(): SqlDriver {
|
||||
return JdbcSqliteDriver(JdbcSqliteDriver.IN_MEMORY + "circolapp.db")
|
||||
.also {
|
||||
val currentVer = getVersion(it)
|
||||
if (currentVer == 0) {
|
||||
AppDatabase.Schema.create(it)
|
||||
setVersion(it, 1)
|
||||
} else {
|
||||
val schemaVer: Int = AppDatabase.Schema.version
|
||||
if (schemaVer > currentVer) {
|
||||
AppDatabase.Schema.migrate(it, currentVer, schemaVer)
|
||||
setVersion(it, schemaVer)
|
||||
println("init: migrated from $currentVer to $schemaVer")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun getVersion(driver: SqlDriver): Int {
|
||||
val sqlCursor = driver.executeQuery(null, "PRAGMA user_version;", 0, null)
|
||||
return sqlCursor.getLong(0)!!.toInt()
|
||||
}
|
||||
|
||||
private fun setVersion(driver: SqlDriver, version: Int) {
|
||||
driver.execute(null, String.format("PRAGMA user_version = %d;", version), 0, null)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user