Files
yourpart3/backend/utils/fixMatch3Data.js

64 lines
1.8 KiB
JavaScript

import { sequelize } from './sequelize.js';
import Match3UserProgress from '../models/match3/userProgress.js';
/**
* Korrigiert alle ungültigen currentLevel-Werte in der Match3-Datenbank
*/
async function fixMatch3Data() {
try {
console.log('🔧 Starte Korrektur der Match3-Daten...');
// Finde alle UserProgress-Einträge mit ungültigen currentLevel-Werten
const invalidEntries = await Match3UserProgress.findAll({
where: {
currentLevel: {
[sequelize.Op.or]: [
{ [sequelize.Op.lt]: 1 },
{ [sequelize.Op.gt]: 1000 }
]
}
}
});
console.log(`📊 Gefunden: ${invalidEntries.length} ungültige Einträge`);
if (invalidEntries.length === 0) {
console.log('✅ Alle currentLevel-Werte sind bereits korrekt');
return;
}
// Korrigiere jeden ungültigen Eintrag
for (const entry of invalidEntries) {
const oldValue = entry.currentLevel;
const correctValue = entry.levelsCompleted + 1;
console.log(`🔧 Korrigiere User ${entry.userId}: currentLevel ${oldValue}${correctValue}`);
await entry.update({
currentLevel: correctValue
});
}
console.log('✅ Alle ungültigen currentLevel-Werte wurden korrigiert');
} catch (error) {
console.error('❌ Fehler beim Korrigieren der Match3-Daten:', error);
throw error;
}
}
// Führe das Skript aus, wenn es direkt aufgerufen wird
if (import.meta.url === `file://${process.argv[1]}`) {
fixMatch3Data()
.then(() => {
console.log('🎯 Match3-Datenkorrektur abgeschlossen');
process.exit(0);
})
.catch((error) => {
console.error('💥 Match3-Datenkorrektur fehlgeschlagen:', error);
process.exit(1);
});
}
export default fixMatch3Data;