♻️ Implement delete (recreate) local database
This commit is contained in:
@ -1,6 +1,11 @@
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:drift/drift.dart';
|
||||
import 'package:drift_flutter/drift_flutter.dart';
|
||||
import 'package:get/get.dart' hide Value;
|
||||
import 'package:path/path.dart';
|
||||
import 'package:path_provider/path_provider.dart';
|
||||
import 'package:solian/platform.dart';
|
||||
import 'package:solian/providers/database/tables/messages.dart';
|
||||
|
||||
import 'package:solian/models/event.dart';
|
||||
@ -17,8 +22,24 @@ class AppDatabase extends _$AppDatabase {
|
||||
static QueryExecutor _openConnection() {
|
||||
return driftDatabase(name: 'solar_network_local_db');
|
||||
}
|
||||
|
||||
static Future<int> getDatabaseSize() async {
|
||||
if (PlatformInfo.isWeb) return 0;
|
||||
final basepath = await getApplicationDocumentsDirectory();
|
||||
return await File(join(basepath.path, 'solar_network_local_db.sqlite'))
|
||||
.length();
|
||||
}
|
||||
|
||||
static Future<void> removeDatabase() async {
|
||||
if (PlatformInfo.isWeb) return;
|
||||
final basepath = await getApplicationDocumentsDirectory();
|
||||
final file = File(join(basepath.path, 'solar_network_local_db.sqlite'));
|
||||
await Get.find<DatabaseProvider>().database.close();
|
||||
await file.delete();
|
||||
Get.find<DatabaseProvider>().database = AppDatabase();
|
||||
}
|
||||
}
|
||||
|
||||
class DatabaseProvider extends GetxController {
|
||||
final database = AppDatabase();
|
||||
var database = AppDatabase();
|
||||
}
|
||||
|
Reference in New Issue
Block a user