mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2025-06-26 04:32:13 +02:00
Fix database cleanup query pulling duplicate mediaProgresses
This commit is contained in:
parent
6b8b27b04f
commit
1f7be58124
@ -766,14 +766,25 @@ class Database {
|
|||||||
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)
|
// Remove mediaProgresses with duplicate mediaItemId (remove the oldest updatedAt or if updatedAt is the same, remove arbitrary one)
|
||||||
// const [duplicateMediaProgresses] = await this.sequelize.query(`SELECT id, mediaItemId FROM mediaProgresses WHERE (mediaItemId, userId, updatedAt) IN (SELECT mediaItemId, userId, MIN(updatedAt) FROM mediaProgresses GROUP BY mediaItemId, userId HAVING COUNT(*) > 1)`)
|
const [duplicateMediaProgresses] = await this.sequelize.query(`SELECT mp1.id, mp1.mediaItemId
|
||||||
// for (const duplicateMediaProgress of duplicateMediaProgresses) {
|
FROM mediaProgresses mp1
|
||||||
// Logger.warn(`Found duplicate mediaProgress for mediaItem "${duplicateMediaProgress.mediaItemId}" - removing it`)
|
WHERE EXISTS (
|
||||||
// await this.mediaProgressModel.destroy({
|
SELECT 1
|
||||||
// where: { id: duplicateMediaProgress.id }
|
FROM mediaProgresses mp2
|
||||||
// })
|
WHERE mp2.mediaItemId = mp1.mediaItemId
|
||||||
// }
|
AND mp2.userId = mp1.userId
|
||||||
|
AND (
|
||||||
|
mp2.updatedAt > mp1.updatedAt
|
||||||
|
OR (mp2.updatedAt = mp1.updatedAt AND mp2.id < mp1.id)
|
||||||
|
)
|
||||||
|
)`)
|
||||||
|
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) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user