Erster Commit
This commit is contained in:
@@ -0,0 +1,75 @@
|
||||
// -------------------------------------------------------------
|
||||
// EINMALIGES MIGRATIONSSKRIPT
|
||||
// Überträgt alle vorhandenen maps/*.json Dateien in die neue
|
||||
// "maps"-Tabelle der Datenbank.
|
||||
//
|
||||
// Ausführen mit: node migrate_maps.js
|
||||
// (im selben Ordner wie server.js, NACHDEM die "maps"-Tabelle
|
||||
// per SQL angelegt wurde)
|
||||
// -------------------------------------------------------------
|
||||
|
||||
import fs from "fs";
|
||||
import path from "path";
|
||||
import { fileURLToPath } from "url";
|
||||
import mysql from "mysql2/promise";
|
||||
|
||||
const __filename = fileURLToPath(import.meta.url);
|
||||
const __dirname = path.dirname(__filename);
|
||||
|
||||
const db = await mysql.createPool({
|
||||
host: "156.67.28.205",
|
||||
user: "game",
|
||||
password: "tito13101",
|
||||
database: "gamegta",
|
||||
port: "3406",
|
||||
connectionLimit: 5
|
||||
});
|
||||
|
||||
async function migrate() {
|
||||
const dir = path.join(__dirname, "maps");
|
||||
|
||||
if (!fs.existsSync(dir)) {
|
||||
console.log("Kein maps/-Ordner gefunden - nichts zu migrieren.");
|
||||
process.exit(0);
|
||||
}
|
||||
|
||||
const files = fs.readdirSync(dir).filter(f => f.endsWith(".json"));
|
||||
|
||||
if (files.length === 0) {
|
||||
console.log("Keine .json-Dateien im maps/-Ordner gefunden.");
|
||||
process.exit(0);
|
||||
}
|
||||
|
||||
console.log(`Gefunden: ${files.length} Map-Datei(en). Starte Migration...`);
|
||||
|
||||
for (const file of files) {
|
||||
const filePath = path.join(dir, file);
|
||||
const raw = fs.readFileSync(filePath, "utf8");
|
||||
|
||||
let data;
|
||||
try {
|
||||
data = JSON.parse(raw);
|
||||
} catch (err) {
|
||||
console.error(`❌ ${file}: ungültiges JSON, übersprungen`, err.message);
|
||||
continue;
|
||||
}
|
||||
|
||||
const name = data.name || path.basename(file, ".json");
|
||||
|
||||
await db.query(
|
||||
"INSERT INTO maps (name, data) VALUES (?, ?) ON DUPLICATE KEY UPDATE data=?",
|
||||
[name, JSON.stringify(data), JSON.stringify(data)]
|
||||
);
|
||||
|
||||
console.log(`✅ "${name}" migriert (${(raw.length / 1024).toFixed(1)} KB)`);
|
||||
}
|
||||
|
||||
console.log("Migration abgeschlossen.");
|
||||
console.log("Du kannst den maps/-Ordner jetzt umbenennen/archivieren (z.B. maps_backup/), sobald du geprüft hast, dass alles im Spiel korrekt lädt.");
|
||||
process.exit(0);
|
||||
}
|
||||
|
||||
migrate().catch(err => {
|
||||
console.error("Migration fehlgeschlagen:", err);
|
||||
process.exit(1);
|
||||
});
|
||||
Reference in New Issue
Block a user