- Increased all sidebar navigation icons from text-sm to text-xl for better visibility - Moved user information and logout button from header to sidebar footer - Added user avatar with name and email in expanded sidebar state - Collapsed sidebar shows avatar icon and logout icon button stacked vertically - Simplified header by removing user badge and logout button - Added version info (v1.0.0) in sidebar footer - Improved responsive design for both collapsed and expanded states
109 lines
4.1 KiB
JavaScript
109 lines
4.1 KiB
JavaScript
// Script para inicializar la base de datos PostgreSQL
|
|
import { Pool } from 'pg';
|
|
import fs from 'fs';
|
|
import path from 'path';
|
|
import { fileURLToPath } from 'url';
|
|
|
|
const __filename = fileURLToPath(import.meta.url);
|
|
const __dirname = path.dirname(__filename);
|
|
|
|
// Configuración de PostgreSQL (Docker local)
|
|
const pool = new Pool({
|
|
host: 'localhost',
|
|
port: 5432,
|
|
database: 'CONTROLDESK',
|
|
user: 'postgres',
|
|
password: 'Control.',
|
|
max: 1
|
|
});
|
|
|
|
async function initDatabase() {
|
|
console.log('=================================');
|
|
console.log('Inicializando Base de Datos');
|
|
console.log('=================================\n');
|
|
|
|
try {
|
|
// Leer el archivo SQL
|
|
const schemaPath = path.join(__dirname, '..', 'database', 'schema.sql');
|
|
console.log('1. Leyendo schema.sql...');
|
|
const sql = fs.readFileSync(schemaPath, 'utf8');
|
|
|
|
// Conectar a PostgreSQL
|
|
console.log('2. Conectando a PostgreSQL...');
|
|
const client = await pool.connect();
|
|
console.log(' ✓ Conectado exitosamente\n');
|
|
|
|
// Ejecutar el script SQL
|
|
console.log('3. Ejecutando script SQL...');
|
|
await client.query(sql);
|
|
console.log(' ✓ Tablas creadas exitosamente\n');
|
|
|
|
// Verificar las tablas creadas
|
|
console.log('4. Verificando tablas creadas...');
|
|
const result = await client.query(`
|
|
SELECT table_name
|
|
FROM information_schema.tables
|
|
WHERE table_schema = 'public'
|
|
AND table_name IN ('usuarios', 'usuario_base_datos', 'sesiones')
|
|
ORDER BY table_name;
|
|
`);
|
|
|
|
if (result.rows.length === 3) {
|
|
console.log(' ✓ Tablas verificadas:');
|
|
result.rows.forEach(row => {
|
|
console.log(` - ${row.table_name}`);
|
|
});
|
|
} else {
|
|
console.log(' ⚠ No todas las tablas fueron creadas');
|
|
}
|
|
|
|
// Verificar usuario admin
|
|
console.log('\n5. Verificando usuario admin...');
|
|
const userResult = await client.query('SELECT username, email, es_admin FROM usuarios WHERE username = $1', ['admin']);
|
|
|
|
if (userResult.rows.length > 0) {
|
|
console.log(' ✓ Usuario admin creado:');
|
|
console.log(` - Username: ${userResult.rows[0].username}`);
|
|
console.log(` - Email: ${userResult.rows[0].email}`);
|
|
console.log(` - Es Admin: ${userResult.rows[0].es_admin}`);
|
|
} else {
|
|
console.log(' ⚠ Usuario admin no encontrado');
|
|
}
|
|
|
|
client.release();
|
|
|
|
console.log('\n=================================');
|
|
console.log('✓ Inicialización Completa');
|
|
console.log('=================================\n');
|
|
console.log('IMPORTANTE: Ahora debes actualizar la contraseña del admin:');
|
|
console.log('1. Ejecuta: node scripts/generate-password-hash.js');
|
|
console.log('2. Copia el hash generado');
|
|
console.log('3. Ejecuta este SQL en PostgreSQL:');
|
|
console.log(' UPDATE usuarios SET password_hash = \'TU_HASH_AQUI\' WHERE username = \'admin\';');
|
|
console.log('\n4. Luego inicia el servidor: npm run dev');
|
|
console.log('5. Ve a: http://localhost:5173/login');
|
|
console.log(' Usuario: admin');
|
|
console.log(' Contraseña: Admin123!\n');
|
|
|
|
} catch (error) {
|
|
console.error('\n❌ Error durante la inicialización:');
|
|
console.error(error.message);
|
|
|
|
if (error.code === 'ECONNREFUSED' || error.code === 'ETIMEDOUT') {
|
|
console.error('\n⚠ No se pudo conectar a PostgreSQL.');
|
|
console.error('Verifica que:');
|
|
console.error('1. PostgreSQL esté corriendo en Docker:');
|
|
console.error(' docker-compose -f docker-compose.postgres.yml up -d');
|
|
console.error('2. Verifica el estado: docker ps');
|
|
console.error('3. Ve los logs: docker-compose -f docker-compose.postgres.yml logs postgres');
|
|
}
|
|
|
|
process.exit(1);
|
|
} finally {
|
|
await pool.end();
|
|
}
|
|
}
|
|
|
|
// Ejecutar
|
|
initDatabase();
|