yeah
This commit is contained in:
65
scripts/update-esid.ts
Normal file
65
scripts/update-esid.ts
Normal file
@@ -0,0 +1,65 @@
|
||||
import { db } from '../server/services/db'
|
||||
import { tracks, compilations, playlists, sql } from '../server/schema'
|
||||
import { eq, and } from 'drizzle-orm'
|
||||
|
||||
async function updateEsid() {
|
||||
console.log('🚀 Démarrage de la mise à jour des esid')
|
||||
|
||||
try {
|
||||
// 1. Mettre à jour les esid pour les compilations
|
||||
console.log('📋 Mise à jour des esid pour les compilations...')
|
||||
await db.run(sql`
|
||||
UPDATE tracks
|
||||
SET esid = (
|
||||
SELECT c.box_id || c.side || t."order"
|
||||
FROM compilations c
|
||||
WHERE c.id = tracks.source_id AND tracks.source_type = 'compilation'
|
||||
)
|
||||
WHERE source_type = 'compilation';
|
||||
`)
|
||||
|
||||
// 2. Mettre à jour les esid pour les playlists
|
||||
console.log('📋 Mise à jour des esid pour les playlists...')
|
||||
|
||||
// Récupérer toutes les playlists
|
||||
const allPlaylists = await db.select().from(playlists).all()
|
||||
|
||||
for (const playlist of allPlaylists) {
|
||||
// Récupérer les tracks de la playlist triés par ordre
|
||||
const playlistTracks = await db
|
||||
.select()
|
||||
.from(tracks)
|
||||
.where(and(eq(tracks.sourceType, 'playlist'), eq(tracks.sourceId, playlist.id)))
|
||||
.orderBy(tracks.order)
|
||||
|
||||
// Mettre à jour chaque track avec le bon esid
|
||||
for (let i = 0; i < playlistTracks.length; i++) {
|
||||
const track = playlistTracks[i]
|
||||
const esidSuffix =
|
||||
i < 26
|
||||
? String.fromCharCode(65 + i) // A-Z pour les 26 premières pistes
|
||||
: (i + 1).toString() // Numéros pour les suivantes
|
||||
|
||||
await db
|
||||
.update(tracks)
|
||||
.set({ esid: `${playlist.name}${esidSuffix}` })
|
||||
.where(eq(tracks.id, track.id))
|
||||
}
|
||||
|
||||
console.log(`✅ Playlist ${playlist.name} mise à jour (${playlistTracks.length} pistes)`)
|
||||
}
|
||||
|
||||
console.log('\n✅ Tous les esid ont été mis à jour avec succès !')
|
||||
} catch (error) {
|
||||
console.error('❌ Erreur lors de la mise à jour des esid:', error)
|
||||
process.exit(1)
|
||||
}
|
||||
}
|
||||
|
||||
// Exécuter le script
|
||||
updateEsid()
|
||||
.then(() => process.exit(0))
|
||||
.catch((error) => {
|
||||
console.error('Erreur inattendue:', error)
|
||||
process.exit(1)
|
||||
})
|
||||
Reference in New Issue
Block a user