Error when using custom JdbcSqliteDriver path

31 Views Asked by At

My error: Caused by: org.koin.core.error.InstanceCreationException: Could not create instance for '[Singleton:'data.local.sqldelight.AppDatabase']

I’ll immediately explain that with JdbcSqliteDriver.IN_MEMORY it works with a bang

I am implementing DatabaseDriberFactory:

actual class DatabaseDriverFactory {
    actual fun createDriver(): SqlDriver {
        val databasePath = File(System.getProperty("java.io.tmpdir"), "${DatabaseHelper.DATABASE_NAME}.db")
        println(databasePath.path)
        val driver = JdbcSqliteDriver(
            url = "jdbc:sqlite:test.db",
            properties = Properties().apply { put("foreign_keys", "true") }
        ).also {
            AppDatabase.Schema.create(it)
        }
        return driver
    }
}

Koin.kt:

 val databaseModule = module {
    single {
        createDatabase(driver = get())
    }
    single<ITeamDao> { TeamDao() }
}

Later this modules will all be initialized


build.gradle.kts:

sqldelight {
    databases {
        create("AppDatabase") {
            packageName.set("data.local.sqldelight")
            srcDirs.setFrom("src/commonMain/kotlin")
//            project.set(listOf("kotlin"))
//            schemaOutputDirectory = file("src/commonMain/sqldelight/schema")
        }
    }
}

I tried to find how to solve this error, but I couldn't

I also get this error below: Caused by: org.sqlite.SQLiteException: [SQLITE_CONSTRAINT_FOREIGNKEY] A foreign key constraint failed (FOREIGN KEY constraint failed)

0

There are 0 best solutions below