mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2026-07-08 02:11:35 +00:00
add postgres dialect support for homelab migration
This commit is contained in:
parent
fa5fa7b788
commit
453cd2587b
20 changed files with 851 additions and 159 deletions
|
|
@ -477,14 +477,27 @@ class Server {
|
|||
|
||||
// Remove series from hide from continue listening that no longer exist
|
||||
try {
|
||||
const users = await Database.sequelize.query(`SELECT u.id, u.username, u.extraData, json_group_array(value) AS seriesIdsToRemove FROM users u, json_each(u.extraData->"seriesHideFromContinueListening") LEFT JOIN series se ON se.id = value WHERE se.id IS NULL GROUP BY u.id;`, {
|
||||
model: Database.userModel,
|
||||
type: Sequelize.QueryTypes.SELECT
|
||||
const users = await Database.userModel.findAll({
|
||||
attributes: ['id', 'username', 'extraData']
|
||||
})
|
||||
|
||||
for (const user of users) {
|
||||
const extraData = JSON.parse(user.extraData)
|
||||
const existingSeriesIds = extraData.seriesHideFromContinueListening
|
||||
const seriesIdsToRemove = JSON.parse(user.dataValues.seriesIdsToRemove)
|
||||
const extraData = typeof user.extraData === 'string' ? JSON.parse(user.extraData || '{}') : user.extraData || {}
|
||||
const existingSeriesIds = Array.isArray(extraData.seriesHideFromContinueListening) ? extraData.seriesHideFromContinueListening : []
|
||||
if (!existingSeriesIds.length) continue
|
||||
|
||||
const existingSeries = await Database.seriesModel.findAll({
|
||||
attributes: ['id'],
|
||||
where: {
|
||||
id: {
|
||||
[Sequelize.Op.in]: existingSeriesIds
|
||||
}
|
||||
}
|
||||
})
|
||||
const existingSeriesSet = new Set(existingSeries.map((series) => series.id))
|
||||
const seriesIdsToRemove = existingSeriesIds.filter((seriesId) => !existingSeriesSet.has(seriesId))
|
||||
if (!seriesIdsToRemove.length) continue
|
||||
|
||||
Logger.info(`[Server] Found ${seriesIdsToRemove.length} non-existent series in seriesHideFromContinueListening for user "${user.username}" - Removing (${seriesIdsToRemove.join(',')})`)
|
||||
const newExtraData = {
|
||||
...extraData,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue