adguard-home-manager/lib/services/database.dart

50 lines
1.5 KiB
Dart
Raw Normal View History

import 'package:sqflite/sqflite.dart';
Future<Map<String, dynamic>> loadDb() async {
List<Map<String, Object?>>? servers;
2022-09-27 15:43:52 +02:00
List<Map<String, Object?>>? appConfig;
2022-09-30 02:24:49 +02:00
Future upgradeDbToV2(Database db) async {
await db.execute("ALTER TABLE appConfig ADD COLUMN overrideSslCheck NUMERIC");
await db.execute("UPDATE appConfig SET overrideSslCheck = 0");
await db.transaction((txn) async{
await txn.rawQuery(
'SELECT * FROM appConfig',
);
});
}
Database db = await openDatabase(
'adguard_home_manager.db',
2022-09-30 02:24:49 +02:00
version: 2,
onCreate: (Database db, int version) async {
await db.execute("CREATE TABLE servers (id TEXT PRIMARY KEY, name TEXT, connectionMethod TEXT, domain TEXT, path TEXT, port INTEGER, user TEXT, password TEXT, defaultServer INTEGER, authToken TEXT)");
2022-09-30 02:24:49 +02:00
await db.execute("CREATE TABLE appConfig (theme NUMERIC, overrideSslCheck NUMERIC)");
await db.execute("INSERT INTO appConfig (theme, overrideSslCheck) VALUES (0, 0)");
},
onUpgrade: (Database db, int oldVersion, int newVersion) async {
2022-09-30 02:24:49 +02:00
if (oldVersion == 1) {
await upgradeDbToV2(db);
}
},
onOpen: (Database db) async {
await db.transaction((txn) async{
servers = await txn.rawQuery(
'SELECT * FROM servers',
);
});
2022-09-27 15:43:52 +02:00
await db.transaction((txn) async{
appConfig = await txn.rawQuery(
'SELECT * FROM appConfig',
);
});
}
);
return {
"servers": servers,
2022-09-27 15:43:52 +02:00
"appConfig": appConfig![0],
"dbInstance": db,
};
}