54 lines
2.1 KiB
JavaScript
54 lines
2.1 KiB
JavaScript
|
|
import pkg from 'pg';
|
|
const { Pool } = pkg;
|
|
|
|
const DATABASE_URL = 'postgresql://edumanager:EduManager2026!Seguro@localhost:5432/edumanager';
|
|
const pool = new Pool({ connectionString: DATABASE_URL });
|
|
|
|
async function runDiag() {
|
|
try {
|
|
const { rows } = await pool.query('SELECT data FROM school_data WHERE id = 1');
|
|
const data = rows[0]?.data || {};
|
|
|
|
console.log('--- DIAGNÓSTICO DE SINCRONIZAÇÃO ---');
|
|
|
|
// 1. Verificar Alunos
|
|
const jsonStudents = data.students || [];
|
|
const { rows: dbStudents } = await pool.query('SELECT id, nome FROM alunos');
|
|
console.log(`JSON: ${jsonStudents.length} alunos | DB: ${dbStudents.length} alunos`);
|
|
|
|
if (jsonStudents.length > 0) {
|
|
const sample = jsonStudents[0];
|
|
const inDb = dbStudents.find(s => s.id === sample.id);
|
|
console.log(`Exemplo Aluno [${sample.name}]: ${inDb ? '✅ No DB' : '❌ NÃO ESTÁ NO DB'}`);
|
|
|
|
// Verificar campos específicos do primeiro aluno
|
|
if (inDb) {
|
|
const { rows: fullStudent } = await pool.query('SELECT * FROM alunos WHERE id = $1', [sample.id]);
|
|
const dbS = fullStudent[0];
|
|
console.log('--- Comparação de Campos (Exemplo) ---');
|
|
console.log(`CPF: JSON[${sample.cpf || '?'}] vs DB[${dbS.cpf || '?'}]`);
|
|
console.log(`Telefone: JSON[${sample.phone || '?'}] vs DB[${dbS.telefone || '?'}]`);
|
|
console.log(`Status: JSON[${sample.status || '?'}] vs DB[${dbS.status || '?'}]`);
|
|
}
|
|
}
|
|
|
|
// 2. Verificar Turmas
|
|
const jsonClasses = data.classes || [];
|
|
const { rows: dbClasses } = await pool.query('SELECT COUNT(*) FROM turmas');
|
|
console.log(`JSON: ${jsonClasses.length} turmas | DB: ${dbClasses[0].count} turmas`);
|
|
|
|
// 3. Verificar Provas
|
|
const jsonExams = data.exams || [];
|
|
const { rows: dbExams } = await pool.query('SELECT COUNT(*) FROM provas');
|
|
console.log(`JSON: ${jsonExams.length} provas | DB: ${dbExams[0].count} provas`);
|
|
|
|
} catch (err) {
|
|
console.error('Erro no diagnóstico:', err.message);
|
|
} finally {
|
|
await pool.end();
|
|
}
|
|
}
|
|
|
|
runDiag();
|