diff --git a/Dockerfile b/Dockerfile index 816bdd3c3..f9c461174 100644 --- a/Dockerfile +++ b/Dockerfile @@ -57,7 +57,7 @@ WORKDIR /app # Copy compiled frontend and server from build stages COPY --from=build-client /client/dist /app/client/dist COPY --from=build-server /server /app -COPY --from=build-server ${NUSQLITE3_PATH} ${NUSQLITE3_PATH} +COPY --from=build-server /usr/local/lib/nusqlite3 /usr/local/lib/nusqlite3 EXPOSE 80 diff --git a/server/Database.js b/server/Database.js index a260e89f2..eb384f25c 100644 --- a/server/Database.js +++ b/server/Database.js @@ -766,25 +766,14 @@ class Database { Logger.warn(`Removed ${badSessionsRemoved} sessions that were 3 seconds or less`) } - // 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 mp1.id, mp1.mediaItemId -FROM mediaProgresses mp1 -WHERE EXISTS ( - SELECT 1 - 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 } - }) - } + // Remove mediaProgresses with duplicate mediaItemId (remove the oldest updatedAt) + // 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)`) + // 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) {