build fix

This commit is contained in:
unknown
2022-03-16 12:33:45 +01:00
parent 551ed6ebdb
commit 1e9247652a
5 changed files with 23 additions and 7 deletions

View File

@@ -31,8 +31,12 @@ Future<Database> initDB() async {
}
// Migrate Databases
await migrateDB(db, "settings", settingsDB.struct.keys, SettingsProvider.defaultSettings().toMap(), createSettingsTable);
await migrateDB(db, "users", usersDB.struct.keys, {"role": 0}, createUsersTable);
try {
await migrateDB(db, "settings", settingsDB.struct.keys, SettingsProvider.defaultSettings().toMap(), createSettingsTable);
await migrateDB(db, "users", usersDB.struct.keys, {"role": 0}, createUsersTable);
} catch (error) {
print("ERROR: migrateDB: $error");
}
return db;
}
@@ -80,12 +84,13 @@ Future<void> migrateDB(
List<Map<String, dynamic>> migrated = [];
// go through each row and add missing keys or delete non existing keys
await Future.forEach<Map<String, Object?>>(originalRows, (original) async {
bool migrationRequired = keys.any((key) => !original.containsKey(key) || original[key] == null);
if (migrationRequired) {
print("INFO: Migrating $table");
var copy = Map<String, dynamic>.from(original);
var copy = Map<String, Object?>.from(original);
// Fill missing columns
for (var key in keys) {
@@ -104,13 +109,14 @@ Future<void> migrateDB(
}
});
// replace the old table with the migrated one
if (migrated.isNotEmpty) {
// Delete table
await db.execute("drop table $table");
// Recreate table
await create(db);
await Future.forEach(migrated, (Map<String, dynamic> copy) async {
await Future.forEach(migrated, (Map<String, Object?> copy) async {
await db.insert(table, copy);
});