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