From 84c3c695b13c17f0633bdcd9e953bef97c6dbaa5 Mon Sep 17 00:00:00 2001 From: HuyNguyen Date: Fri, 29 Dec 2023 16:12:46 +0700 Subject: [PATCH] Add callback migrating database --- lib/src/database/hive_collections_database.dart | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/src/database/hive_collections_database.dart b/lib/src/database/hive_collections_database.dart index 123e90470..ae7260030 100644 --- a/lib/src/database/hive_collections_database.dart +++ b/lib/src/database/hive_collections_database.dart @@ -33,12 +33,15 @@ import 'package:matrix/matrix.dart'; import 'package:matrix/src/utils/queued_to_device_event.dart'; import 'package:matrix/src/utils/run_benchmarked.dart'; +typedef StartMigrationProcess = Function(); + /// This database does not support file caching! class HiveCollectionsDatabase extends DatabaseApi { static const int version = 6; final String name; final String? path; final HiveCipher? key; + final StartMigrationProcess? startMigrationProcess; final Future Function( String name, Set boxNames, { @@ -127,7 +130,8 @@ class HiveCollectionsDatabase extends DatabaseApi { HiveCollectionsDatabase( this.name, - this.path, { + this.path,{ + this.startMigrationProcess, this.key, this.collectionFactory = BoxCollection.open, }); @@ -238,6 +242,9 @@ class HiveCollectionsDatabase extends DatabaseApi { Future _migrateFromVersion(int currentVersion) async { Logs().i('Migrate store database from version $currentVersion to $version'); + if (startMigrationProcess != null) { + startMigrationProcess!.call(); + } await clearCache(); await _clientBox.put('version', version.toString()); }