immich/mobile/lib/data/db/logger/database.dart
Adam Gastineau 8dcfd36fa5
chore(mobile): move Drift into mobile/data (#30966)
* chore(mobile): move Drift into mobile/data

* Move into more structured subdirectories

* Fix changed merge paths
2026-08-25 00:51:02 +05:30

36 lines
1.2 KiB
Dart

import 'package:drift/drift.dart';
import 'package:drift_sqlite_async/drift_sqlite_async.dart';
import 'package:immich_mobile/data/db/logger/database.drift.dart';
import 'package:immich_mobile/data/db/logger/table/log.dart';
import 'package:immich_mobile/utils/debug_print.dart';
import 'package:sqlite_async/sqlite_async.dart';
@DriftDatabase(tables: [LogMessageEntity])
class DriftLogger extends $DriftLogger {
DriftLogger.fromExecutor(super.executor);
DriftLogger.sqlite(SqliteConnection db) : super(SqliteAsyncDriftConnection(db));
@override
int get schemaVersion => 1;
Future<void> optimize() async {
try {
await customStatement('PRAGMA optimize=0x10002');
} catch (error) {
dPrint(() => 'Failed to optimize logger database: $error');
}
}
@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 = 30000'); // 30s
await customStatement('PRAGMA cache_size = -32000'); // 32MB
await customStatement('PRAGMA temp_store = MEMORY');
},
);
}