我想在我的KMM项目中预先填充数据库。我使用SQLDelight。我在Android端有这个实现。
actual fun Scope.createDriver(): SqlDriver {
val context = androidContext()
val fileName = "dbFileName"
val database: File = context.getDatabasePath(fileName)
if (!database.exists()) {
val inputStream = context.assets.open(fileName)
val outputStream = FileOutputStream(database.absolutePath)
inputStream.use { input ->
outputStream.use {
input.copyTo(it)
}
}
}
return AndroidSqliteDriver(NoteDatabase.Schema, context, fileName)
}
我在iOS上试过这个代码,但它不工作。
val path = "test.db"
val fileManager = NSFileManager.defaultManager
if (!fileManager.fileExistsAtPath(path)) {
val bundlePath = MR.assets.balagh_ul_quran.url.path.toString()
fileManager.copyItemAtPath(bundlePath, toPath = path, error = null)
}
return NativeSqliteDriver(NoteDatabase.Schema, path)
谁能给点建议吗?
谢谢!
1条答案
按热度按时间b1uwtaje1#
DatabaseFileContext
是一个sqliter类,仅供参考。