2023-03-23 03:36:44 +02:00
|
|
|
import 'dart:async';
|
|
|
|
|
2023-02-09 19:32:08 +02:00
|
|
|
import 'package:immich_mobile/shared/models/store.dart';
|
2023-03-27 04:35:52 +02:00
|
|
|
import 'package:immich_mobile/utils/db.dart';
|
2023-03-18 16:55:11 +02:00
|
|
|
import 'package:isar/isar.dart';
|
2023-02-09 19:32:08 +02:00
|
|
|
|
2023-03-27 04:35:52 +02:00
|
|
|
Future<void> migrateDatabaseIfNeeded(Isar db) async {
|
|
|
|
final int version = Store.get(StoreKey.version, 1);
|
|
|
|
switch (version) {
|
|
|
|
case 1:
|
2023-06-10 20:13:59 +02:00
|
|
|
await _migrateTo(db, 2);
|
|
|
|
case 2:
|
|
|
|
await _migrateTo(db, 3);
|
2023-11-13 17:54:41 +02:00
|
|
|
case 3:
|
|
|
|
await _migrateTo(db, 4);
|
2024-01-06 05:02:16 +02:00
|
|
|
case 4:
|
|
|
|
await _migrateTo(db, 5);
|
2023-03-27 04:35:52 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2023-06-10 20:13:59 +02:00
|
|
|
Future<void> _migrateTo(Isar db, int version) async {
|
2023-03-27 04:35:52 +02:00
|
|
|
await clearAssetsAndAlbums(db);
|
2023-06-10 20:13:59 +02:00
|
|
|
await Store.put(StoreKey.version, version);
|
2023-03-27 04:35:52 +02:00
|
|
|
}
|