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()); }