Para exportar o banco de dados SQLite será necessário criar uma classe útil com um método estático pra fazer a exportação para um arquivo slq.
class DbUtil {
companion object {
@Throws(IOException::class)
fun exportDb(destinationFolder: File, context: Context) {
if(destinationFolder.isFile){
throw IOException("The 'destinationFolder' must be a folder not a file")
}
val dataDirectory = Environment.getDataDirectory()
val currentDBPath = "/data/" + context.applicationInfo.packageName + "/databases/${DBController.DATABASE_NAME}"
val backupDBPath = "${DBController.DATABASE_NAME}.sqlite"
val currentDB = File(dataDirectory, currentDBPath)
val backupDB = File(destinationFolder, backupDBPath)
FileInputStream(currentDB).channel.use { source ->
FileOutputStream(backupDB).channel.use { destination ->
destination.transferFrom(source, 0, source.size())
}
}
}
}
}
Para exportar o banco de dados é somente utilizar conforme o exemplo abaixo.
Environment.getExternalStorageDirectory()
DbUtil.exportDb(folder, this)
0 comentários