mirror of
https://github.com/immich-app/immich.git
synced 2026-02-04 08:49:01 +03:00
fix(mobile): backfill asset dimensions to exif table (#25483)
This commit is contained in:
@@ -240,6 +240,8 @@ class SyncStreamRepository extends DriftDatabaseRepository {
|
|||||||
rating: Value(exif.rating),
|
rating: Value(exif.rating),
|
||||||
projectionType: Value(exif.projectionType),
|
projectionType: Value(exif.projectionType),
|
||||||
lens: Value(exif.lensModel),
|
lens: Value(exif.lensModel),
|
||||||
|
width: Value(exif.exifImageWidth),
|
||||||
|
height: Value(exif.exifImageHeight),
|
||||||
);
|
);
|
||||||
|
|
||||||
batch.insert(
|
batch.insert(
|
||||||
|
|||||||
@@ -88,6 +88,7 @@ Future<void> migrateDatabaseIfNeeded(Isar db, Drift drift) async {
|
|||||||
|
|
||||||
if (version < 20 && Store.isBetaTimelineEnabled) {
|
if (version < 20 && Store.isBetaTimelineEnabled) {
|
||||||
await _syncLocalAlbumIsIosSharedAlbum(drift);
|
await _syncLocalAlbumIsIosSharedAlbum(drift);
|
||||||
|
await _backfillAssetExifWidthHeight(drift);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (targetVersion >= 12) {
|
if (targetVersion >= 12) {
|
||||||
@@ -281,6 +282,22 @@ Future<void> _syncLocalAlbumIsIosSharedAlbum(Drift db) async {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Future<void> _backfillAssetExifWidthHeight(Drift db) async {
|
||||||
|
try {
|
||||||
|
await db.customStatement('''
|
||||||
|
UPDATE remote_exif_entity AS remote_exif
|
||||||
|
SET width = asset.width,
|
||||||
|
height = asset.height
|
||||||
|
FROM remote_asset_entity AS asset
|
||||||
|
WHERE remote_exif.asset_id = asset.id;
|
||||||
|
''');
|
||||||
|
|
||||||
|
dPrint(() => "[MIGRATION] Successfully backfilled asset exif width and height");
|
||||||
|
} catch (error) {
|
||||||
|
dPrint(() => "[MIGRATION] Error while backfilling asset exif width and height: $error");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Future<void> migrateDeviceAssetToSqlite(Isar db, Drift drift) async {
|
Future<void> migrateDeviceAssetToSqlite(Isar db, Drift drift) async {
|
||||||
try {
|
try {
|
||||||
final isarDeviceAssets = await db.deviceAssetEntitys.where().findAll();
|
final isarDeviceAssets = await db.deviceAssetEntitys.where().findAll();
|
||||||
|
|||||||
Reference in New Issue
Block a user