49 lines
1.3 KiB
JavaScript
49 lines
1.3 KiB
JavaScript
/**
|
||
* MailFlow - Database Cleanup Script
|
||
*
|
||
* ⚠️ WICHTIG: Liest Credentials aus Umgebungsvariablen (.env)
|
||
* Keine hardcoded API Keys mehr!
|
||
*/
|
||
|
||
import 'dotenv/config';
|
||
import { Client, Databases } from "node-appwrite";
|
||
|
||
// Prüfe erforderliche Umgebungsvariablen
|
||
const requiredEnv = [
|
||
"APPWRITE_ENDPOINT",
|
||
"APPWRITE_PROJECT_ID",
|
||
"APPWRITE_API_KEY",
|
||
"APPWRITE_DATABASE_ID"
|
||
];
|
||
|
||
for (const key of requiredEnv) {
|
||
if (!process.env[key]) {
|
||
console.error(`❌ Fehlende Umgebungsvariable: ${key}`);
|
||
console.error(`\nBitte setze diese Variable in server/.env`);
|
||
process.exit(1);
|
||
}
|
||
}
|
||
|
||
const client = new Client()
|
||
.setEndpoint(process.env.APPWRITE_ENDPOINT)
|
||
.setProject(process.env.APPWRITE_PROJECT_ID)
|
||
.setKey(process.env.APPWRITE_API_KEY);
|
||
|
||
const db = new Databases(client);
|
||
const databaseId = process.env.APPWRITE_DATABASE_ID;
|
||
|
||
console.log(`🗑️ Lösche Datenbank: ${databaseId}`);
|
||
console.log(`⚠️ WARNUNG: Diese Aktion kann nicht rückgängig gemacht werden!\n`);
|
||
|
||
try {
|
||
await db.delete(databaseId);
|
||
console.log(`✅ Datenbank erfolgreich gelöscht: ${databaseId}`);
|
||
} catch (e) {
|
||
if (e.code === 404) {
|
||
console.log(`ℹ️ Datenbank existiert nicht: ${databaseId}`);
|
||
} else {
|
||
console.error(`❌ Fehler beim Löschen der Datenbank:`, e.message);
|
||
process.exit(1);
|
||
}
|
||
}
|