diff --git a/packages/cli/src/databases/migrations/sqlite/1690000000002-MigrateIntegerKeysToString.ts b/packages/cli/src/databases/migrations/sqlite/1690000000002-MigrateIntegerKeysToString.ts index 48dfc3ad46..83b55787b2 100644 --- a/packages/cli/src/databases/migrations/sqlite/1690000000002-MigrateIntegerKeysToString.ts +++ b/packages/cli/src/databases/migrations/sqlite/1690000000002-MigrateIntegerKeysToString.ts @@ -208,20 +208,24 @@ const pruneExecutionsData = async ({ queryRunner, tablePrefix, logger }: Migrati } console.time('pruningData'); - const counting = (await queryRunner.query( - `select count(id) as rows from "${tablePrefix}execution_entity";`, - )) as Array<{ rows: number }>; + const [{ rowCount }] = (await queryRunner.query( + `select count(id) as rowCount from "${tablePrefix}execution_entity";`, + )) as Array<{ rowCount: number }>; - const averageExecutionSize = dbFileSize / counting[0].rows; - const numberOfExecutionsToKeep = Math.floor(DESIRED_DATABASE_FILE_SIZE / averageExecutionSize); + if (rowCount > 0) { + const averageExecutionSize = dbFileSize / rowCount; + const numberOfExecutionsToKeep = Math.floor( + DESIRED_DATABASE_FILE_SIZE / averageExecutionSize, + ); - const query = `SELECT id FROM "${tablePrefix}execution_entity" ORDER BY id DESC limit ${numberOfExecutionsToKeep}, 1`; - const idToKeep = await queryRunner - .query(query) - .then((rows: Array<{ id: number }>) => rows[0].id); + const query = `SELECT id FROM "${tablePrefix}execution_entity" ORDER BY id DESC limit ${numberOfExecutionsToKeep}, 1`; + const idToKeep = await queryRunner + .query(query) + .then((rows: Array<{ id: number }>) => rows[0].id); - const removalQuery = `DELETE FROM "${tablePrefix}execution_entity" WHERE id < ${idToKeep} and status IN ('success')`; - await queryRunner.query(removalQuery); + const removalQuery = `DELETE FROM "${tablePrefix}execution_entity" WHERE id < ${idToKeep} and status IN ('success')`; + await queryRunner.query(removalQuery); + } console.timeEnd('pruningData'); } else { logger.debug('Pruning was requested, but was not enabled');