mirror of
https://github.com/immich-app/immich
synced 2025-11-14 17:36:12 +00: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:
parent
68b617130a
commit
9c8c52874a
6 changed files with 25 additions and 28 deletions
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue