mirror of
https://github.com/immich-app/immich.git
synced 2025-11-01 11:07:11 -04:00
* feat: use drift for logging * fix: tests * feat: use the truncate limit from constants.ts as default * chore: move setupAll to top level and restructure * chore: code review changes * fix: inherits * feat: raise log line limit to 2000 * limit getAll to 250 lines * delete DLog and make LogRepository not a singleton * fix: drift build settings and `make migration` * fix: tests * remove sensitive log --------- Co-authored-by: Alex <alex.tran1502@gmail.com>
28 lines
958 B
Dart
28 lines
958 B
Dart
import 'package:drift/drift.dart';
|
|
import 'package:drift_flutter/drift_flutter.dart';
|
|
import 'package:immich_mobile/domain/interfaces/db.interface.dart';
|
|
import 'package:immich_mobile/infrastructure/entities/log.entity.dart';
|
|
|
|
import 'logger_db.repository.drift.dart';
|
|
|
|
@DriftDatabase(tables: [LogMessageEntity])
|
|
class DriftLogger extends $DriftLogger implements IDatabaseRepository {
|
|
DriftLogger([QueryExecutor? executor])
|
|
: super(
|
|
executor ?? driftDatabase(name: 'immich_logs', native: const DriftNativeOptions(shareAcrossIsolates: true)),
|
|
);
|
|
|
|
@override
|
|
int get schemaVersion => 1;
|
|
|
|
@override
|
|
MigrationStrategy get migration => MigrationStrategy(
|
|
beforeOpen: (details) async {
|
|
await customStatement('PRAGMA foreign_keys = ON');
|
|
await customStatement('PRAGMA synchronous = NORMAL');
|
|
await customStatement('PRAGMA journal_mode = WAL');
|
|
await customStatement('PRAGMA busy_timeout = 500');
|
|
},
|
|
);
|
|
}
|