From 17c6d8b2893fa5753081ac3f752e0fd55df17178 Mon Sep 17 00:00:00 2001 From: Andres Pinto <143480783+apsantiso@users.noreply.github.com> Date: Thu, 16 Apr 2026 16:18:45 +0200 Subject: [PATCH] fix: add parent_uuid support for sync folders queries --- ...y-idx-folders-user-parent-updated-index.js | 28 +++++++++++++++++++ src/modules/folder/folder.repository.spec.ts | 2 +- src/modules/folder/folder.repository.ts | 2 +- 3 files changed, 30 insertions(+), 2 deletions(-) create mode 100644 migrations/20260416141407-modify-idx-folders-user-parent-updated-index.js diff --git a/migrations/20260416141407-modify-idx-folders-user-parent-updated-index.js b/migrations/20260416141407-modify-idx-folders-user-parent-updated-index.js new file mode 100644 index 000000000..4afdc6213 --- /dev/null +++ b/migrations/20260416141407-modify-idx-folders-user-parent-updated-index.js @@ -0,0 +1,28 @@ +'use strict'; + +/** @type {import('sequelize-cli').Migration} */ +module.exports = { + async up(queryInterface, Sequelize) { + await queryInterface.sequelize.query(` + CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_folders_user_id_updated_at_parent_uuid_not_null + ON folders (user_id, updated_at) + WHERE parent_uuid IS NOT NULL; + `); + + await queryInterface.sequelize.query(` + DROP INDEX CONCURRENTLY IF EXISTS idx_folders_user_parent_updated; + `); + }, + + async down(queryInterface, Sequelize) { + await queryInterface.sequelize.query(` + CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_folders_user_parent_updated + ON folders (user_id, updated_at) + WHERE parent_id IS NOT NULL; + `); + + await queryInterface.sequelize.query(` + DROP INDEX CONCURRENTLY IF EXISTS idx_folders_user_id_updated_at_parent_uuid_not_null; + `); + }, +}; diff --git a/src/modules/folder/folder.repository.spec.ts b/src/modules/folder/folder.repository.spec.ts index 6f82823a2..a555ef67c 100644 --- a/src/modules/folder/folder.repository.spec.ts +++ b/src/modules/folder/folder.repository.spec.ts @@ -186,7 +186,7 @@ describe('SequelizeFolderRepository', () => { where: { ...whereClause, updatedAt: { [Op.gt]: updatedAfter }, - parentId: { [Op.not]: null }, + parentUuid: { [Op.not]: null }, }, include: [ { diff --git a/src/modules/folder/folder.repository.ts b/src/modules/folder/folder.repository.ts index 78837fe83..e45a36324 100644 --- a/src/modules/folder/folder.repository.ts +++ b/src/modules/folder/folder.repository.ts @@ -849,7 +849,7 @@ export class SequelizeFolderRepository implements FolderRepository { updatedAt: { [Op.gt]: updatedAfter, }, - parentId: { + parentUuid: { [Op.not]: null, }, },