> immich@1.143.1 migrations:debug > node ./dist/bin/migrations.js debug Wrote migrations.sql -- UP ALTER TABLE "asset" ADD CONSTRAINT "asset_pkey" PRIMARY KEY ("id"); -- missing in target ALTER TABLE "album" ADD CONSTRAINT "album_pkey" PRIMARY KEY ("id"); -- missing in target ALTER TABLE "album_asset" ADD CONSTRAINT "album_asset_pkey" PRIMARY KEY ("albumsId", "assetsId"); -- missing in target ALTER TABLE "album_asset_audit" ADD CONSTRAINT "album_asset_audit_pkey" PRIMARY KEY ("id"); -- missing in target ALTER TABLE "album_audit" ADD CONSTRAINT "album_audit_pkey" PRIMARY KEY ("id"); -- missing in target ALTER TABLE "album_user_audit" ADD CONSTRAINT "album_user_audit_pkey" PRIMARY KEY ("id"); -- missing in target ALTER TABLE "album_user" ADD CONSTRAINT "album_user_pkey" PRIMARY KEY ("albumsId", "usersId"); -- missing in target ALTER TABLE "api_key" ADD CONSTRAINT "api_key_pkey" PRIMARY KEY ("id"); -- missing in target ALTER TABLE "asset_audit" ADD CONSTRAINT "asset_audit_pkey" PRIMARY KEY ("id"); -- missing in target ALTER TABLE "asset_exif" ADD CONSTRAINT "asset_exif_pkey" PRIMARY KEY ("assetId"); -- missing in target ALTER TABLE "asset_face_audit" ADD CONSTRAINT "asset_face_audit_pkey" PRIMARY KEY ("id"); -- missing in target ALTER TABLE "asset_face" ADD CONSTRAINT "asset_face_pkey" PRIMARY KEY ("id"); -- missing in target ALTER TABLE "asset_file" ADD CONSTRAINT "asset_file_pkey" PRIMARY KEY ("id"); -- missing in target ALTER TABLE "asset_job_status" ADD CONSTRAINT "asset_job_status_pkey" PRIMARY KEY ("assetId"); -- missing in target ALTER TABLE "asset_metadata_audit" ADD CONSTRAINT "asset_metadata_audit_pkey" PRIMARY KEY ("id"); -- missing in target ALTER TABLE "asset_metadata" ADD CONSTRAINT "asset_metadata_pkey" PRIMARY KEY ("assetId", "key"); -- missing in target ALTER TABLE "audit" ADD CONSTRAINT "audit_pkey" PRIMARY KEY ("id"); -- missing in target ALTER TABLE "memory" ADD CONSTRAINT "memory_pkey" PRIMARY KEY ("id"); -- missing in target ALTER TABLE "memory_asset_audit" ADD CONSTRAINT "memory_asset_audit_pkey" PRIMARY KEY ("id"); -- missing in target ALTER TABLE "memory_asset" ADD CONSTRAINT "memory_asset_pkey" PRIMARY KEY ("memoriesId", "assetsId"); -- missing in target ALTER TABLE "memory_audit" ADD CONSTRAINT "memory_audit_pkey" PRIMARY KEY ("id"); -- missing in target ALTER TABLE "move_history" ADD CONSTRAINT "move_history_pkey" PRIMARY KEY ("id"); -- missing in target ALTER TABLE "migration_overrides" ADD CONSTRAINT "migration_overrides_pkey" PRIMARY KEY ("name"); -- missing in target ALTER TABLE "stack" ADD CONSTRAINT "stack_primaryAssetId_fkey" FOREIGN KEY ("primaryAssetId") REFERENCES "asset" ("id") ON UPDATE NO ACTION ON DELETE NO ACTION; -- missing in target ALTER TABLE "asset" ADD CONSTRAINT "asset_ownerId_fkey" FOREIGN KEY ("ownerId") REFERENCES "user" ("id") ON UPDATE CASCADE ON DELETE CASCADE; -- missing in target ALTER TABLE "asset" ADD CONSTRAINT "asset_livePhotoVideoId_fkey" FOREIGN KEY ("livePhotoVideoId") REFERENCES "asset" ("id") ON UPDATE CASCADE ON DELETE SET NULL; -- missing in target ALTER TABLE "asset" ADD CONSTRAINT "asset_libraryId_fkey" FOREIGN KEY ("libraryId") REFERENCES "library" ("id") ON UPDATE CASCADE ON DELETE CASCADE; -- missing in target ALTER TABLE "asset" ADD CONSTRAINT "asset_stackId_fkey" FOREIGN KEY ("stackId") REFERENCES "stack" ("id") ON UPDATE CASCADE ON DELETE SET NULL; -- missing in target ALTER TABLE "album" ADD CONSTRAINT "album_ownerId_fkey" FOREIGN KEY ("ownerId") REFERENCES "user" ("id") ON UPDATE CASCADE ON DELETE CASCADE; -- missing in target ALTER TABLE "album" ADD CONSTRAINT "album_albumThumbnailAssetId_fkey" FOREIGN KEY ("albumThumbnailAssetId") REFERENCES "asset" ("id") ON UPDATE CASCADE ON DELETE SET NULL; -- missing in target ALTER TABLE "album_asset" ADD CONSTRAINT "album_asset_albumsId_fkey" FOREIGN KEY ("albumsId") REFERENCES "album" ("id") ON UPDATE CASCADE ON DELETE CASCADE; -- missing in target ALTER TABLE "album_asset" ADD CONSTRAINT "album_asset_assetsId_fkey" FOREIGN KEY ("assetsId") REFERENCES "asset" ("id") ON UPDATE CASCADE ON DELETE CASCADE; -- missing in target ALTER TABLE "activity" ADD CONSTRAINT "activity_albumId_fkey" FOREIGN KEY ("albumId") REFERENCES "album" ("id") ON UPDATE CASCADE ON DELETE CASCADE; -- missing in target ALTER TABLE "activity" ADD CONSTRAINT "activity_assetId_fkey" FOREIGN KEY ("assetId") REFERENCES "asset" ("id") ON UPDATE CASCADE ON DELETE CASCADE; -- missing in target ALTER TABLE "activity" ADD CONSTRAINT "activity_albumId_assetId_fkey" FOREIGN KEY ("albumId", "assetId") REFERENCES "album_asset" ("albumsId", "assetsId") ON UPDATE NO ACTION ON DELETE CASCADE; -- missing in target ALTER TABLE "album_asset_audit" ADD CONSTRAINT "album_asset_audit_albumId_fkey" FOREIGN KEY ("albumId") REFERENCES "album" ("id") ON UPDATE CASCADE ON DELETE CASCADE; -- missing in target ALTER TABLE "album_user" ADD CONSTRAINT "album_user_albumsId_fkey" FOREIGN KEY ("albumsId") REFERENCES "album" ("id") ON UPDATE CASCADE ON DELETE CASCADE; -- missing in target ALTER TABLE "album_user" ADD CONSTRAINT "album_user_usersId_fkey" FOREIGN KEY ("usersId") REFERENCES "user" ("id") ON UPDATE CASCADE ON DELETE CASCADE; -- missing in target ALTER TABLE "api_key" ADD CONSTRAINT "api_key_userId_fkey" FOREIGN KEY ("userId") REFERENCES "user" ("id") ON UPDATE CASCADE ON DELETE CASCADE; -- missing in target ALTER TABLE "asset_exif" ADD CONSTRAINT "asset_exif_assetId_fkey" FOREIGN KEY ("assetId") REFERENCES "asset" ("id") ON UPDATE NO ACTION ON DELETE CASCADE; -- missing in target ALTER TABLE "person" ADD CONSTRAINT "person_faceAssetId_fkey" FOREIGN KEY ("faceAssetId") REFERENCES "asset_face" ("id") ON UPDATE NO ACTION ON DELETE SET NULL; -- missing in target ALTER TABLE "asset_face" ADD CONSTRAINT "asset_face_assetId_fkey" FOREIGN KEY ("assetId") REFERENCES "asset" ("id") ON UPDATE CASCADE ON DELETE CASCADE; -- missing in target ALTER TABLE "asset_face" ADD CONSTRAINT "asset_face_personId_fkey" FOREIGN KEY ("personId") REFERENCES "person" ("id") ON UPDATE CASCADE ON DELETE SET NULL; -- missing in target ALTER TABLE "asset_file" ADD CONSTRAINT "asset_file_assetId_fkey" FOREIGN KEY ("assetId") REFERENCES "asset" ("id") ON UPDATE CASCADE ON DELETE CASCADE; -- missing in target ALTER TABLE "asset_job_status" ADD CONSTRAINT "asset_job_status_assetId_fkey" FOREIGN KEY ("assetId") REFERENCES "asset" ("id") ON UPDATE CASCADE ON DELETE CASCADE; -- missing in target ALTER TABLE "asset_metadata" ADD CONSTRAINT "asset_metadata_assetId_fkey" FOREIGN KEY ("assetId") REFERENCES "asset" ("id") ON UPDATE CASCADE ON DELETE CASCADE; -- missing in target ALTER TABLE "face_search" ADD CONSTRAINT "face_search_faceId_fkey" FOREIGN KEY ("faceId") REFERENCES "asset_face" ("id") ON UPDATE NO ACTION ON DELETE CASCADE; -- missing in target ALTER TABLE "memory" ADD CONSTRAINT "memory_ownerId_fkey" FOREIGN KEY ("ownerId") REFERENCES "user" ("id") ON UPDATE CASCADE ON DELETE CASCADE; -- missing in target ALTER TABLE "memory_asset_audit" ADD CONSTRAINT "memory_asset_audit_memoryId_fkey" FOREIGN KEY ("memoryId") REFERENCES "memory" ("id") ON UPDATE CASCADE ON DELETE CASCADE; -- missing in target ALTER TABLE "memory_asset" ADD CONSTRAINT "memory_asset_memoriesId_fkey" FOREIGN KEY ("memoriesId") REFERENCES "memory" ("id") ON UPDATE CASCADE ON DELETE CASCADE; -- missing in target ALTER TABLE "memory_asset" ADD CONSTRAINT "memory_asset_assetsId_fkey" FOREIGN KEY ("assetsId") REFERENCES "asset" ("id") ON UPDATE CASCADE ON DELETE CASCADE; -- missing in target ALTER TABLE "shared_link" ADD CONSTRAINT "shared_link_albumId_fkey" FOREIGN KEY ("albumId") REFERENCES "album" ("id") ON UPDATE CASCADE ON DELETE CASCADE; -- missing in target ALTER TABLE "shared_link_asset" ADD CONSTRAINT "shared_link_asset_assetsId_fkey" FOREIGN KEY ("assetsId") REFERENCES "asset" ("id") ON UPDATE CASCADE ON DELETE CASCADE; -- missing in target ALTER TABLE "smart_search" ADD CONSTRAINT "smart_search_assetId_fkey" FOREIGN KEY ("assetId") REFERENCES "asset" ("id") ON UPDATE NO ACTION ON DELETE CASCADE; -- missing in target ALTER TABLE "tag_asset" ADD CONSTRAINT "tag_asset_assetsId_fkey" FOREIGN KEY ("assetsId") REFERENCES "asset" ("id") ON UPDATE CASCADE ON DELETE CASCADE; -- missing in target ALTER TABLE "asset_file" ADD CONSTRAINT "asset_file_assetId_type_uq" UNIQUE ("assetId", "type"); -- missing in target ALTER TABLE "move_history" ADD CONSTRAINT "UQ_newPath" UNIQUE ("newPath"); -- missing in target ALTER TABLE "move_history" ADD CONSTRAINT "UQ_entityId_pathType" UNIQUE ("entityId", "pathType"); -- missing in target CREATE INDEX "asset_originalFilename_trigram_idx" ON "asset" USING gin (f_unaccent("originalFileName") gin_trgm_ops); -- missing in target CREATE INDEX "asset_id_stackId_idx" ON "asset" ("id", "stackId"); -- missing in target CREATE INDEX "asset_originalPath_libraryId_idx" ON "asset" ("originalPath", "libraryId"); -- missing in target CREATE INDEX "asset_localDateTime_month_idx" ON "asset" ((date_trunc('MONTH'::text, ("localDateTime" AT TIME ZONE 'UTC'::text)) AT TIME ZONE 'UTC'::text)); -- missing in target CREATE INDEX "asset_localDateTime_idx" ON "asset" ((("localDateTime" at time zone 'UTC')::date)); -- missing in target CREATE UNIQUE INDEX "asset_ownerId_libraryId_checksum_idx" ON "asset" ("ownerId", "libraryId", "checksum") WHERE ("libraryId" IS NOT NULL); -- missing in target CREATE UNIQUE INDEX "UQ_assets_owner_checksum" ON "asset" ("ownerId", "checksum") WHERE ("libraryId" IS NULL); -- missing in target CREATE INDEX "asset_ownerId_idx" ON "asset" ("ownerId"); -- missing in target CREATE INDEX "asset_fileCreatedAt_idx" ON "asset" ("fileCreatedAt"); -- missing in target CREATE INDEX "asset_checksum_idx" ON "asset" ("checksum"); -- missing in target CREATE INDEX "asset_livePhotoVideoId_idx" ON "asset" ("livePhotoVideoId"); -- missing in target CREATE INDEX "asset_originalFileName_idx" ON "asset" ("originalFileName"); -- missing in target CREATE INDEX "asset_libraryId_idx" ON "asset" ("libraryId"); -- missing in target CREATE INDEX "asset_stackId_idx" ON "asset" ("stackId"); -- missing in target CREATE INDEX "asset_duplicateId_idx" ON "asset" ("duplicateId"); -- missing in target CREATE INDEX "asset_updateId_idx" ON "asset" ("updateId"); -- missing in target CREATE INDEX "album_ownerId_idx" ON "album" ("ownerId"); -- missing in target CREATE INDEX "album_albumThumbnailAssetId_idx" ON "album" ("albumThumbnailAssetId"); -- missing in target CREATE INDEX "album_updateId_idx" ON "album" ("updateId"); -- missing in target CREATE INDEX "album_asset_albumsId_idx" ON "album_asset" ("albumsId"); -- missing in target CREATE INDEX "album_asset_assetsId_idx" ON "album_asset" ("assetsId"); -- missing in target CREATE INDEX "album_asset_updateId_idx" ON "album_asset" ("updateId"); -- missing in target CREATE INDEX "album_asset_audit_albumId_idx" ON "album_asset_audit" ("albumId"); -- missing in target CREATE INDEX "album_asset_audit_assetId_idx" ON "album_asset_audit" ("assetId"); -- missing in target CREATE INDEX "album_asset_audit_deletedAt_idx" ON "album_asset_audit" ("deletedAt"); -- missing in target CREATE INDEX "album_audit_albumId_idx" ON "album_audit" ("albumId"); -- missing in target CREATE INDEX "album_audit_userId_idx" ON "album_audit" ("userId"); -- missing in target CREATE INDEX "album_audit_deletedAt_idx" ON "album_audit" ("deletedAt"); -- missing in target CREATE INDEX "album_user_audit_albumId_idx" ON "album_user_audit" ("albumId"); -- missing in target CREATE INDEX "album_user_audit_userId_idx" ON "album_user_audit" ("userId"); -- missing in target CREATE INDEX "album_user_audit_deletedAt_idx" ON "album_user_audit" ("deletedAt"); -- missing in target CREATE INDEX "album_user_albumsId_idx" ON "album_user" ("albumsId"); -- missing in target CREATE INDEX "album_user_usersId_idx" ON "album_user" ("usersId"); -- missing in target CREATE INDEX "album_user_createId_idx" ON "album_user" ("createId"); -- missing in target CREATE INDEX "album_user_updateId_idx" ON "album_user" ("updateId"); -- missing in target CREATE INDEX "api_key_userId_idx" ON "api_key" ("userId"); -- missing in target CREATE INDEX "api_key_updateId_idx" ON "api_key" ("updateId"); -- missing in target CREATE INDEX "asset_audit_assetId_idx" ON "asset_audit" ("assetId"); -- missing in target CREATE INDEX "asset_audit_ownerId_idx" ON "asset_audit" ("ownerId"); -- missing in target CREATE INDEX "asset_audit_deletedAt_idx" ON "asset_audit" ("deletedAt"); -- missing in target CREATE INDEX "asset_exif_city_idx" ON "asset_exif" ("city"); -- missing in target CREATE INDEX "asset_exif_livePhotoCID_idx" ON "asset_exif" ("livePhotoCID"); -- missing in target CREATE INDEX "asset_exif_autoStackId_idx" ON "asset_exif" ("autoStackId"); -- missing in target CREATE INDEX "asset_exif_updateId_idx" ON "asset_exif" ("updateId"); -- missing in target CREATE INDEX "asset_face_audit_assetFaceId_idx" ON "asset_face_audit" ("assetFaceId"); -- missing in target CREATE INDEX "asset_face_audit_assetId_idx" ON "asset_face_audit" ("assetId"); -- missing in target CREATE INDEX "asset_face_audit_deletedAt_idx" ON "asset_face_audit" ("deletedAt"); -- missing in target CREATE INDEX "asset_face_personId_assetId_idx" ON "asset_face" ("personId", "assetId"); -- missing in target CREATE INDEX "asset_face_assetId_personId_idx" ON "asset_face" ("assetId", "personId"); -- missing in target CREATE INDEX "asset_file_assetId_idx" ON "asset_file" ("assetId"); -- missing in target CREATE INDEX "asset_file_updateId_idx" ON "asset_file" ("updateId"); -- missing in target CREATE INDEX "asset_metadata_audit_assetId_idx" ON "asset_metadata_audit" ("assetId"); -- missing in target CREATE INDEX "asset_metadata_audit_key_idx" ON "asset_metadata_audit" ("key"); -- missing in target CREATE INDEX "asset_metadata_audit_deletedAt_idx" ON "asset_metadata_audit" ("deletedAt"); -- missing in target CREATE INDEX "asset_metadata_updateId_idx" ON "asset_metadata" ("updateId"); -- missing in target CREATE INDEX "asset_metadata_updatedAt_idx" ON "asset_metadata" ("updatedAt"); -- missing in target CREATE INDEX "audit_ownerId_createdAt_idx" ON "audit" ("ownerId", "createdAt"); -- missing in target CREATE INDEX "memory_ownerId_idx" ON "memory" ("ownerId"); -- missing in target CREATE INDEX "memory_updateId_idx" ON "memory" ("updateId"); -- missing in target CREATE INDEX "memory_asset_audit_memoryId_idx" ON "memory_asset_audit" ("memoryId"); -- missing in target CREATE INDEX "memory_asset_audit_assetId_idx" ON "memory_asset_audit" ("assetId"); -- missing in target CREATE INDEX "memory_asset_audit_deletedAt_idx" ON "memory_asset_audit" ("deletedAt"); -- missing in target CREATE INDEX "memory_audit_memoryId_idx" ON "memory_audit" ("memoryId"); -- missing in target CREATE INDEX "memory_audit_userId_idx" ON "memory_audit" ("userId"); -- missing in target CREATE INDEX "memory_audit_deletedAt_idx" ON "memory_audit" ("deletedAt"); -- missing in target CREATE OR REPLACE TRIGGER "asset_delete_audit" AFTER DELETE ON "asset" REFERENCING OLD TABLE AS "old" FOR EACH STATEMENT WHEN (pg_trigger_depth() = 0) EXECUTE FUNCTION asset_delete_audit(); -- missing in target CREATE OR REPLACE TRIGGER "asset_updatedAt" BEFORE UPDATE ON "asset" FOR EACH ROW EXECUTE FUNCTION updated_at(); -- missing in target CREATE OR REPLACE TRIGGER "album_delete_audit" AFTER DELETE ON "album" REFERENCING OLD TABLE AS "old" FOR EACH STATEMENT WHEN (pg_trigger_depth() = 0) EXECUTE FUNCTION album_delete_audit(); -- missing in target CREATE OR REPLACE TRIGGER "album_updatedAt" BEFORE UPDATE ON "album" FOR EACH ROW EXECUTE FUNCTION updated_at(); -- missing in target CREATE OR REPLACE TRIGGER "album_asset_delete_audit" AFTER DELETE ON "album_asset" REFERENCING OLD TABLE AS "old" FOR EACH STATEMENT WHEN (pg_trigger_depth() <= 1) EXECUTE FUNCTION album_asset_delete_audit(); -- missing in target CREATE OR REPLACE TRIGGER "album_asset_updatedAt" BEFORE UPDATE ON "album_asset" FOR EACH ROW EXECUTE FUNCTION updated_at(); -- missing in target CREATE OR REPLACE TRIGGER "album_user_delete_audit" AFTER DELETE ON "album_user" REFERENCING OLD TABLE AS "old" FOR EACH STATEMENT WHEN (pg_trigger_depth() <= 1) EXECUTE FUNCTION album_user_delete_audit(); -- missing in target CREATE OR REPLACE TRIGGER "album_user_after_insert" AFTER INSERT ON "album_user" REFERENCING NEW TABLE AS "inserted_rows" FOR EACH STATEMENT EXECUTE FUNCTION album_user_after_insert(); -- missing in target CREATE OR REPLACE TRIGGER "album_user_updatedAt" BEFORE UPDATE ON "album_user" FOR EACH ROW EXECUTE FUNCTION updated_at(); -- missing in target CREATE OR REPLACE TRIGGER "api_key_updatedAt" BEFORE UPDATE ON "api_key" FOR EACH ROW EXECUTE FUNCTION updated_at(); -- missing in target CREATE OR REPLACE TRIGGER "asset_exif_updatedAt" BEFORE UPDATE ON "asset_exif" FOR EACH ROW EXECUTE FUNCTION updated_at(); -- missing in target CREATE OR REPLACE TRIGGER "asset_face_audit" AFTER DELETE ON "asset_face" REFERENCING OLD TABLE AS "old" FOR EACH STATEMENT WHEN (pg_trigger_depth() = 0) EXECUTE FUNCTION asset_face_audit(); -- missing in target CREATE OR REPLACE TRIGGER "asset_face_updatedAt" BEFORE UPDATE ON "asset_face" FOR EACH ROW EXECUTE FUNCTION updated_at(); -- missing in target CREATE OR REPLACE TRIGGER "asset_file_updatedAt" BEFORE UPDATE ON "asset_file" FOR EACH ROW EXECUTE FUNCTION updated_at(); -- missing in target CREATE OR REPLACE TRIGGER "asset_metadata_audit" AFTER DELETE ON "asset_metadata" REFERENCING OLD TABLE AS "old" FOR EACH STATEMENT WHEN (pg_trigger_depth() = 0) EXECUTE FUNCTION asset_metadata_audit(); -- missing in target CREATE OR REPLACE TRIGGER "asset_metadata_updated_at" BEFORE UPDATE ON "asset_metadata" FOR EACH ROW EXECUTE FUNCTION updated_at(); -- missing in target CREATE OR REPLACE TRIGGER "memory_delete_audit" AFTER DELETE ON "memory" REFERENCING OLD TABLE AS "old" FOR EACH STATEMENT WHEN (pg_trigger_depth() = 0) EXECUTE FUNCTION memory_delete_audit(); -- missing in target CREATE OR REPLACE TRIGGER "memory_updatedAt" BEFORE UPDATE ON "memory" FOR EACH ROW EXECUTE FUNCTION updated_at(); -- missing in target