Files
NoIdle/backend/create_missing_tables.js

60 lines
2.2 KiB
JavaScript
Raw Normal View History

const { query } = require('./config/database');
async function createTables() {
try {
console.log('🔧 Criando tabela browsing_history...');
await query(`
CREATE TABLE IF NOT EXISTS browsing_history (
id SERIAL PRIMARY KEY,
device_id VARCHAR(255) NOT NULL,
url TEXT NOT NULL,
title VARCHAR(500),
browser VARCHAR(100),
visited_at TIMESTAMP NOT NULL DEFAULT NOW(),
created_at TIMESTAMP NOT NULL DEFAULT NOW()
)
`);
console.log('✅ Tabela browsing_history criada');
console.log('🔧 Criando índices para browsing_history...');
await query(`
CREATE INDEX IF NOT EXISTS idx_browsing_history_device_id ON browsing_history(device_id)
`);
await query(`
CREATE INDEX IF NOT EXISTS idx_browsing_history_visited_at ON browsing_history(visited_at DESC)
`);
console.log('✅ Índices criados');
console.log('🔧 Criando tabela session_events...');
await query(`
CREATE TABLE IF NOT EXISTS session_events (
id SERIAL PRIMARY KEY,
device_id VARCHAR(255) NOT NULL,
event_type VARCHAR(20) NOT NULL CHECK (event_type IN ('logon', 'logoff')),
username VARCHAR(255),
event_time TIMESTAMP NOT NULL DEFAULT NOW(),
created_at TIMESTAMP NOT NULL DEFAULT NOW()
)
`);
console.log('✅ Tabela session_events criada');
console.log('🔧 Criando índices para session_events...');
await query(`
CREATE INDEX IF NOT EXISTS idx_session_events_device_id ON session_events(device_id)
`);
await query(`
CREATE INDEX IF NOT EXISTS idx_session_events_event_time ON session_events(event_time DESC)
`);
console.log('✅ Índices criados');
console.log('\n✅ Todas as tabelas foram criadas com sucesso!');
process.exit(0);
} catch (error) {
console.error('❌ Erro ao criar tabelas:', error);
process.exit(1);
}
}
createTables();