diff --git a/server/src/schema/migrations/1764866946512-AddLockedPropertiesToAssetExif.ts b/server/src/schema/migrations/1764866946512-AddLockedPropertiesToAssetExif.ts new file mode 100644 index 0000000000..5a9f652b8c --- /dev/null +++ b/server/src/schema/migrations/1764866946512-AddLockedPropertiesToAssetExif.ts @@ -0,0 +1,9 @@ +import { Kysely, sql } from 'kysely'; + +export async function up(db: Kysely): Promise { + await sql`ALTER TABLE "asset_exif" ADD "lockedProperties" character varying[] NOT NULL DEFAULT '{}';`.execute(db); +} + +export async function down(db: Kysely): Promise { + await sql`ALTER TABLE "asset_exif" DROP COLUMN "lockedProperties";`.execute(db); +} diff --git a/server/src/services/asset.service.spec.ts b/server/src/services/asset.service.spec.ts index e58c868c5e..c4719b5771 100755 --- a/server/src/services/asset.service.spec.ts +++ b/server/src/services/asset.service.spec.ts @@ -226,7 +226,7 @@ describe(AssetService.name, () => { await sut.update(authStub.admin, 'asset-1', { description: 'Test description' }); expect(mocks.asset.upsertExif).toHaveBeenCalledWith( - { assetId: 'asset-1', description: 'Test description' }, + { assetId: 'asset-1', description: 'Test description', lockedProperties: ['description'] }, { lockedPropertiesBehavior: 'update' }, ); }); @@ -242,6 +242,7 @@ describe(AssetService.name, () => { { assetId: 'asset-1', rating: 3, + lockedProperties: ['rating'], }, { lockedPropertiesBehavior: 'update' }, );