Update cleanDatabase to remove duplicate mediaProgresses

This commit is contained in:
advplyr 2025-06-06 17:05:07 -05:00
parent e669a8d378
commit 81640464ba

View File

@ -765,6 +765,15 @@ class Database {
if (badSessionsRemoved > 0) { if (badSessionsRemoved > 0) {
Logger.warn(`Removed ${badSessionsRemoved} sessions that were 3 seconds or less`) Logger.warn(`Removed ${badSessionsRemoved} sessions that were 3 seconds or less`)
} }
// Remove mediaProgresses with duplicate mediaItemId (remove the oldest updatedAt)
const [duplicateMediaProgresses] = await this.sequelize.query(`SELECT id, mediaItemId FROM mediaProgresses WHERE (mediaItemId, updatedAt) IN (SELECT mediaItemId, MIN(updatedAt) FROM mediaProgresses GROUP BY mediaItemId HAVING COUNT(*) > 1)`)
for (const duplicateMediaProgress of duplicateMediaProgresses) {
Logger.warn(`Found duplicate mediaProgress for mediaItem "${duplicateMediaProgress.mediaItemId}" - removing it`)
await this.mediaProgressModel.destroy({
where: { id: duplicateMediaProgress.id }
})
}
} }
async createTextSearchQuery(query) { async createTextSearchQuery(query) {