mirror of
https://github.com/immich-app/immich.git
synced 2025-12-20 09:15:35 +03:00
fix: cleanup logger DB in isolates (#20730)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
This commit is contained in:
@@ -47,14 +47,11 @@ abstract final class Bootstrap {
|
||||
);
|
||||
}
|
||||
|
||||
static Future<void> initDomain(Isar db, {bool shouldBufferLogs = true}) async {
|
||||
// load drift dbs
|
||||
final loggerDb = DriftLogger();
|
||||
|
||||
static Future<void> initDomain(Isar db, DriftLogger logDb, {bool shouldBufferLogs = true}) async {
|
||||
await StoreService.init(storeRepository: IsarStoreRepository(db));
|
||||
|
||||
await LogService.init(
|
||||
logRepository: LogRepository(loggerDb),
|
||||
logRepository: LogRepository(logDb),
|
||||
storeRepository: IsarStoreRepository(db),
|
||||
shouldBuffer: shouldBufferLogs,
|
||||
);
|
||||
|
||||
@@ -5,6 +5,7 @@ import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||
import 'package:immich_mobile/domain/services/log.service.dart';
|
||||
import 'package:immich_mobile/infrastructure/repositories/logger_db.repository.dart';
|
||||
import 'package:immich_mobile/providers/db.provider.dart';
|
||||
import 'package:immich_mobile/providers/infrastructure/cancel.provider.dart';
|
||||
import 'package:immich_mobile/providers/infrastructure/db.provider.dart';
|
||||
@@ -35,7 +36,8 @@ Cancelable<T?> runInIsolateGentle<T>({
|
||||
DartPluginRegistrant.ensureInitialized();
|
||||
|
||||
final db = await Bootstrap.initIsar();
|
||||
await Bootstrap.initDomain(db, shouldBufferLogs: false);
|
||||
final logDb = DriftLogger();
|
||||
await Bootstrap.initDomain(db, logDb, shouldBufferLogs: false);
|
||||
final ref = ProviderContainer(
|
||||
overrides: [
|
||||
// TODO: Remove once isar is removed
|
||||
@@ -57,6 +59,7 @@ Cancelable<T?> runInIsolateGentle<T>({
|
||||
} finally {
|
||||
try {
|
||||
await LogService.I.flush();
|
||||
await logDb.close();
|
||||
await ref.read(driftProvider).close();
|
||||
|
||||
// Close Isar safely
|
||||
|
||||
Reference in New Issue
Block a user