64 lines
1.8 KiB
JavaScript
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;
|