feat: add automated configuration checker script
This commit is contained in:
parent
0ecfa29bf0
commit
ded6045fdb
74
check_config.js
Normal file
74
check_config.js
Normal file
@ -0,0 +1,74 @@
|
||||
const { Client, Databases } = require('node-appwrite');
|
||||
|
||||
async function checkConfig() {
|
||||
console.log('🔍 Validando configuración de Almeira Web...\n');
|
||||
|
||||
const requiredVars = [
|
||||
'NEXT_PUBLIC_APPWRITE_ENDPOINT',
|
||||
'NEXT_PUBLIC_APPWRITE_PROJECT_ID',
|
||||
'APPWRITE_API_KEY',
|
||||
'APPWRITE_DATABASE_ID'
|
||||
];
|
||||
|
||||
let missing = false;
|
||||
requiredVars.forEach(v => {
|
||||
if (!process.env[v]) {
|
||||
console.error(`❌ Faltante: Variable de entorno ${v}`);
|
||||
missing = true;
|
||||
} else {
|
||||
console.log(`✅ Presente: ${v}`);
|
||||
}
|
||||
});
|
||||
|
||||
if (missing) {
|
||||
console.error('\n🛑 Error: Faltan variables de entorno críticas. Revisa tu archivo .env.local.');
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
const client = new Client()
|
||||
.setEndpoint(process.env.NEXT_PUBLIC_APPWRITE_ENDPOINT)
|
||||
.setProject(process.env.NEXT_PUBLIC_APPWRITE_PROJECT_ID)
|
||||
.setKey(process.env.APPWRITE_API_KEY);
|
||||
|
||||
const databases = new Databases(client);
|
||||
const databaseId = process.env.APPWRITE_DATABASE_ID;
|
||||
|
||||
try {
|
||||
console.log(`\n📡 Conectando a Appwrite (${process.env.NEXT_PUBLIC_APPWRITE_ENDPOINT})...`);
|
||||
const db = await databases.get(databaseId);
|
||||
console.log(`✅ Conexión exitosa a la base de datos: "${db.name}" (${databaseId})`);
|
||||
|
||||
const collectionsToCheck = [
|
||||
'posts',
|
||||
'settings',
|
||||
'publication_types',
|
||||
'categories',
|
||||
'whatsapp_messages',
|
||||
'entidad'
|
||||
];
|
||||
|
||||
console.log('\n📦 Verificando colecciones críticas...');
|
||||
for (const colId of collectionsToCheck) {
|
||||
try {
|
||||
const col = await databases.getCollection(databaseId, colId);
|
||||
console.log(`✅ Colección encontrada: ${col.name} (${colId})`);
|
||||
} catch (err) {
|
||||
console.error(`❌ Error en colección ${colId}: ${err.message}`);
|
||||
missing = true;
|
||||
}
|
||||
}
|
||||
|
||||
} catch (err) {
|
||||
console.error(`❌ Error de conexión a Appwrite: ${err.message}`);
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
if (missing) {
|
||||
console.error('\n🛑 Algunas colecciones no fueron encontradas. Revisa la base de datos en Appwrite.');
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
console.log('\n✨ ¡Configuración validada correctamente para producción!');
|
||||
}
|
||||
|
||||
checkConfig();
|
||||
@ -6,7 +6,8 @@
|
||||
"dev": "next dev",
|
||||
"build": "next build",
|
||||
"start": "next start",
|
||||
"lint": "eslint"
|
||||
"lint": "eslint",
|
||||
"check-config": "node --env-file=.env.local check_config.js"
|
||||
},
|
||||
"dependencies": {
|
||||
"@tiptap/extension-color": "^3.21.0",
|
||||
|
||||
Loading…
Reference in New Issue
Block a user