mirror of
https://github.com/immich-app/immich.git
synced 2025-08-11 09:16:31 -04:00
fix: drift build settings and make migration
This commit is contained in:
parent
33bbb8d3e2
commit
4469dd21a3
@ -19,6 +19,7 @@ targets:
|
|||||||
- lib/infrastructure/entities/*.dart
|
- lib/infrastructure/entities/*.dart
|
||||||
- lib/infrastructure/entities/*.drift
|
- lib/infrastructure/entities/*.drift
|
||||||
- lib/infrastructure/repositories/db.repository.dart
|
- lib/infrastructure/repositories/db.repository.dart
|
||||||
|
- lib/infrastructure/repositories/logger_db.repository.dart
|
||||||
drift_dev:modular:
|
drift_dev:modular:
|
||||||
enabled: true
|
enabled: true
|
||||||
options: *drift_options
|
options: *drift_options
|
||||||
|
@ -9,7 +9,6 @@ import 'package:immich_mobile/infrastructure/entities/exif.entity.dart';
|
|||||||
import 'package:immich_mobile/infrastructure/entities/local_album.entity.dart';
|
import 'package:immich_mobile/infrastructure/entities/local_album.entity.dart';
|
||||||
import 'package:immich_mobile/infrastructure/entities/local_album_asset.entity.dart';
|
import 'package:immich_mobile/infrastructure/entities/local_album_asset.entity.dart';
|
||||||
import 'package:immich_mobile/infrastructure/entities/local_asset.entity.dart';
|
import 'package:immich_mobile/infrastructure/entities/local_asset.entity.dart';
|
||||||
import 'package:immich_mobile/infrastructure/entities/log.entity.dart';
|
|
||||||
import 'package:immich_mobile/infrastructure/entities/memory.entity.dart';
|
import 'package:immich_mobile/infrastructure/entities/memory.entity.dart';
|
||||||
import 'package:immich_mobile/infrastructure/entities/memory_asset.entity.dart';
|
import 'package:immich_mobile/infrastructure/entities/memory_asset.entity.dart';
|
||||||
import 'package:immich_mobile/infrastructure/entities/partner.entity.dart';
|
import 'package:immich_mobile/infrastructure/entities/partner.entity.dart';
|
||||||
@ -131,24 +130,3 @@ class DriftDatabaseRepository implements IDatabaseRepository {
|
|||||||
@override
|
@override
|
||||||
Future<T> transaction<T>(Future<T> Function() callback) => _db.transaction(callback);
|
Future<T> transaction<T>(Future<T> Function() callback) => _db.transaction(callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
@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');
|
|
||||||
},
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
@ -36,8 +36,6 @@ import 'package:immich_mobile/infrastructure/entities/asset_face.entity.drift.da
|
|||||||
import 'package:immich_mobile/infrastructure/entities/merged_asset.drift.dart'
|
import 'package:immich_mobile/infrastructure/entities/merged_asset.drift.dart'
|
||||||
as i17;
|
as i17;
|
||||||
import 'package:drift/internal/modular.dart' as i18;
|
import 'package:drift/internal/modular.dart' as i18;
|
||||||
import 'package:immich_mobile/infrastructure/entities/log.entity.drift.dart'
|
|
||||||
as i19;
|
|
||||||
|
|
||||||
abstract class $Drift extends i0.GeneratedDatabase {
|
abstract class $Drift extends i0.GeneratedDatabase {
|
||||||
$Drift(i0.QueryExecutor e) : super(e);
|
$Drift(i0.QueryExecutor e) : super(e);
|
||||||
@ -313,25 +311,3 @@ class $DriftManager {
|
|||||||
i16.$$AssetFaceEntityTableTableManager get assetFaceEntity =>
|
i16.$$AssetFaceEntityTableTableManager get assetFaceEntity =>
|
||||||
i16.$$AssetFaceEntityTableTableManager(_db, _db.assetFaceEntity);
|
i16.$$AssetFaceEntityTableTableManager(_db, _db.assetFaceEntity);
|
||||||
}
|
}
|
||||||
|
|
||||||
abstract class $DriftLogger extends i0.GeneratedDatabase {
|
|
||||||
$DriftLogger(i0.QueryExecutor e) : super(e);
|
|
||||||
$DriftLoggerManager get managers => $DriftLoggerManager(this);
|
|
||||||
late final i19.$LogMessageEntityTable logMessageEntity = i19
|
|
||||||
.$LogMessageEntityTable(this);
|
|
||||||
@override
|
|
||||||
Iterable<i0.TableInfo<i0.Table, Object?>> get allTables =>
|
|
||||||
allSchemaEntities.whereType<i0.TableInfo<i0.Table, Object?>>();
|
|
||||||
@override
|
|
||||||
List<i0.DatabaseSchemaEntity> get allSchemaEntities => [logMessageEntity];
|
|
||||||
@override
|
|
||||||
i0.DriftDatabaseOptions get options =>
|
|
||||||
const i0.DriftDatabaseOptions(storeDateTimeAsText: true);
|
|
||||||
}
|
|
||||||
|
|
||||||
class $DriftLoggerManager {
|
|
||||||
final $DriftLogger _db;
|
|
||||||
$DriftLoggerManager(this._db);
|
|
||||||
i19.$$LogMessageEntityTableTableManager get logMessageEntity =>
|
|
||||||
i19.$$LogMessageEntityTableTableManager(_db, _db.logMessageEntity);
|
|
||||||
}
|
|
||||||
|
@ -3,7 +3,7 @@ import 'package:immich_mobile/constants/constants.dart';
|
|||||||
import 'package:immich_mobile/domain/models/log.model.dart';
|
import 'package:immich_mobile/domain/models/log.model.dart';
|
||||||
import 'package:immich_mobile/infrastructure/entities/log.entity.dart';
|
import 'package:immich_mobile/infrastructure/entities/log.entity.dart';
|
||||||
import 'package:immich_mobile/infrastructure/entities/log.entity.drift.dart';
|
import 'package:immich_mobile/infrastructure/entities/log.entity.drift.dart';
|
||||||
import 'package:immich_mobile/infrastructure/repositories/db.repository.dart';
|
import 'package:immich_mobile/infrastructure/repositories/logger_db.repository.dart';
|
||||||
|
|
||||||
class LogRepository {
|
class LogRepository {
|
||||||
final DriftLogger _db;
|
final DriftLogger _db;
|
||||||
|
@ -0,0 +1,27 @@
|
|||||||
|
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');
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
27
mobile/lib/infrastructure/repositories/logger_db.repository.drift.dart
generated
Normal file
27
mobile/lib/infrastructure/repositories/logger_db.repository.drift.dart
generated
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
// dart format width=80
|
||||||
|
// ignore_for_file: type=lint
|
||||||
|
import 'package:drift/drift.dart' as i0;
|
||||||
|
import 'package:immich_mobile/infrastructure/entities/log.entity.drift.dart'
|
||||||
|
as i1;
|
||||||
|
|
||||||
|
abstract class $DriftLogger extends i0.GeneratedDatabase {
|
||||||
|
$DriftLogger(i0.QueryExecutor e) : super(e);
|
||||||
|
$DriftLoggerManager get managers => $DriftLoggerManager(this);
|
||||||
|
late final i1.$LogMessageEntityTable logMessageEntity = i1
|
||||||
|
.$LogMessageEntityTable(this);
|
||||||
|
@override
|
||||||
|
Iterable<i0.TableInfo<i0.Table, Object?>> get allTables =>
|
||||||
|
allSchemaEntities.whereType<i0.TableInfo<i0.Table, Object?>>();
|
||||||
|
@override
|
||||||
|
List<i0.DatabaseSchemaEntity> get allSchemaEntities => [logMessageEntity];
|
||||||
|
@override
|
||||||
|
i0.DriftDatabaseOptions get options =>
|
||||||
|
const i0.DriftDatabaseOptions(storeDateTimeAsText: true);
|
||||||
|
}
|
||||||
|
|
||||||
|
class $DriftLoggerManager {
|
||||||
|
final $DriftLogger _db;
|
||||||
|
$DriftLoggerManager(this._db);
|
||||||
|
i1.$$LogMessageEntityTableTableManager get logMessageEntity =>
|
||||||
|
i1.$$LogMessageEntityTableTableManager(_db, _db.logMessageEntity);
|
||||||
|
}
|
@ -14,8 +14,8 @@ 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/exif.entity.dart';
|
||||||
import 'package:immich_mobile/infrastructure/entities/store.entity.dart';
|
import 'package:immich_mobile/infrastructure/entities/store.entity.dart';
|
||||||
import 'package:immich_mobile/infrastructure/entities/user.entity.dart';
|
import 'package:immich_mobile/infrastructure/entities/user.entity.dart';
|
||||||
import 'package:immich_mobile/infrastructure/repositories/db.repository.dart';
|
|
||||||
import 'package:immich_mobile/infrastructure/repositories/log.repository.dart';
|
import 'package:immich_mobile/infrastructure/repositories/log.repository.dart';
|
||||||
|
import 'package:immich_mobile/infrastructure/repositories/logger_db.repository.dart';
|
||||||
import 'package:immich_mobile/infrastructure/repositories/store.repository.dart';
|
import 'package:immich_mobile/infrastructure/repositories/store.repository.dart';
|
||||||
import 'package:isar/isar.dart';
|
import 'package:isar/isar.dart';
|
||||||
import 'package:path_provider/path_provider.dart';
|
import 'package:path_provider/path_provider.dart';
|
||||||
|
Loading…
x
Reference in New Issue
Block a user