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, }, },