diff --git a/packages/syncing-server/bin/revisions.ts b/packages/syncing-server/bin/revisions.ts index fb5e6a9fe..f39553a94 100644 --- a/packages/syncing-server/bin/revisions.ts +++ b/packages/syncing-server/bin/revisions.ts @@ -27,7 +27,7 @@ const fixRevisionsOwnership = async ( const itemsCount = await itemRepository.countAll({ createdBetween: [createdAfter, createdBefore], - selectFields: ['user_uuid', 'uuid'], + selectString: 'item.uuid AS uuid, item.user_uuid AS userUuid', contentType: [ContentType.Note, ContentType.File], sortOrder: 'ASC', sortBy: 'uuid', @@ -36,17 +36,18 @@ const fixRevisionsOwnership = async ( logger.info(`There are ${itemsCount} items between ${createdAfter.toISOString()} and ${createdBefore.toISOString()}`) const limit = 500 - let page = 1 const amountOfPages = Math.ceil(itemsCount / limit) const tenPercentOfPages = Math.ceil(amountOfPages / 10) - for (page; page <= amountOfPages; page++) { + for (let page = 1; page <= amountOfPages; page++) { if (page % tenPercentOfPages === 0) { - logger.info(`Processing page ${page} of ${amountOfPages}`) + logger.info( + `Processing page ${page} of ${amountOfPages} items between ${createdAfter.toISOString()} and ${createdBefore.toISOString()}`, + ) } const items = await itemRepository.findAll({ createdBetween: [createdAfter, createdBefore], - selectFields: ['user_uuid', 'uuid'], + selectString: 'item.uuid AS uuid, item.user_uuid AS userUuid', contentType: [ContentType.Note, ContentType.File], offset: (page - 1) * limit, limit, @@ -56,8 +57,6 @@ const fixRevisionsOwnership = async ( for (const item of items) { if (!item.userUuid || !item.uuid) { - logger.error('Could not process item %O', item) - continue } diff --git a/packages/syncing-server/src/Domain/Item/ItemQuery.ts b/packages/syncing-server/src/Domain/Item/ItemQuery.ts index 7ccfcf0f4..c45c8bb6b 100644 --- a/packages/syncing-server/src/Domain/Item/ItemQuery.ts +++ b/packages/syncing-server/src/Domain/Item/ItemQuery.ts @@ -10,5 +10,5 @@ export type ItemQuery = { offset?: number limit?: number createdBetween?: Date[] - selectFields?: string[] + selectString?: string } diff --git a/packages/syncing-server/src/Infra/MySQL/MySQLItemRepository.ts b/packages/syncing-server/src/Infra/MySQL/MySQLItemRepository.ts index 155a145a6..218bdbc43 100644 --- a/packages/syncing-server/src/Infra/MySQL/MySQLItemRepository.ts +++ b/packages/syncing-server/src/Infra/MySQL/MySQLItemRepository.ts @@ -135,8 +135,8 @@ export class MySQLItemRepository implements ItemRepositoryInterface { queryBuilder.orderBy(`item.${query.sortBy}`, query.sortOrder) } - if (query.selectFields !== undefined) { - queryBuilder.select(query.selectFields.map((field) => `item.${field}`)) + if (query.selectString !== undefined) { + queryBuilder.select(query.selectString) } if (query.userUuid !== undefined) { queryBuilder.where('item.user_uuid = :userUuid', { userUuid: query.userUuid })