feat: drift store migration

This commit is contained in:
Alex Tran
2025-06-27 14:33:49 -05:00
committed by Alex
parent 3d35e65f27
commit f0c9163364
15 changed files with 916 additions and 211 deletions
+20 -1
View File
@@ -13,10 +13,12 @@ import 'package:immich_mobile/entities/ios_device_asset.entity.dart';
import 'package:immich_mobile/infrastructure/entities/device_asset.entity.dart';
import 'package:immich_mobile/infrastructure/entities/exif.entity.dart';
import 'package:immich_mobile/infrastructure/entities/log.entity.dart';
import 'package:immich_mobile/infrastructure/entities/store.entity.dart';
import 'package:immich_mobile/infrastructure/entities/isar_store.entity.dart';
import 'package:immich_mobile/infrastructure/entities/user.entity.dart';
import 'package:immich_mobile/infrastructure/repositories/log.repository.dart';
import 'package:immich_mobile/infrastructure/repositories/store.repository.dart';
import 'package:immich_mobile/infrastructure/repositories/db.repository.dart';
import 'package:immich_mobile/infrastructure/repositories/drift_store.repository.dart';
import 'package:isar/isar.dart';
import 'package:path_provider/path_provider.dart';
@@ -48,6 +50,10 @@ abstract final class Bootstrap {
);
}
static Future<Drift> initDrift() async {
return Drift();
}
static Future<void> initDomain(
Isar db, {
bool shouldBufferLogs = true,
@@ -59,4 +65,17 @@ abstract final class Bootstrap {
shouldBuffer: shouldBufferLogs,
);
}
static Future<void> initDomainWithDrift(
Drift db, {
bool shouldBufferLogs = true,
}) async {
await StoreService.init(storeRepository: DriftStoreRepository(db));
final isarDb = await initIsar();
await LogService.init(
logRepository: IsarLogRepository(isarDb),
storeRepository: DriftStoreRepository(db),
shouldBuffer: shouldBufferLogs,
);
}
}
+1 -1
View File
@@ -14,8 +14,8 @@ import 'package:immich_mobile/entities/ios_device_asset.entity.dart';
import 'package:immich_mobile/entities/store.entity.dart';
import 'package:immich_mobile/infrastructure/entities/device_asset.entity.dart';
import 'package:immich_mobile/infrastructure/entities/exif.entity.dart';
import 'package:immich_mobile/infrastructure/entities/isar_store.entity.dart';
import 'package:immich_mobile/infrastructure/entities/local_asset.entity.drift.dart';
import 'package:immich_mobile/infrastructure/entities/store.entity.dart';
import 'package:immich_mobile/infrastructure/entities/user.entity.dart';
import 'package:immich_mobile/infrastructure/repositories/db.repository.dart';
import 'package:immich_mobile/utils/diff.dart';