Add unique constraint to network analytics data and restart frontend script
Add a unique constraint to the network_analytics table in the Drizzle schema to prevent duplicate entries, and create a new script for restarting the frontend application. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 7a657272-55ba-4a79-9a2e-f1ed9bc7a528 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: 2676dcba-e26b-4eb4-b4a4-33d33d0c9b00 Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/449cf7c4-c97a-45ae-8234-e5c5b8d6a84f/7a657272-55ba-4a79-9a2e-f1ed9bc7a528/37PFEyl
This commit is contained in:
parent
4d7279a0ab
commit
3beb9d8782
40
deployment/restart_frontend.sh
Executable file
40
deployment/restart_frontend.sh
Executable file
@ -0,0 +1,40 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# Restart IDS Frontend (Node.js/Express/Vite)
|
||||||
|
# Utility per restart manuale del server frontend
|
||||||
|
#
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
echo "🔄 Restart Frontend Node.js..."
|
||||||
|
|
||||||
|
# Kill processi Vite esistenti
|
||||||
|
echo "⏸️ Stopping existing processes..."
|
||||||
|
pkill -f "vite" 2>/dev/null || true
|
||||||
|
pkill -f "npm run dev" 2>/dev/null || true
|
||||||
|
sleep 2
|
||||||
|
|
||||||
|
# Verifica porta 5000 libera
|
||||||
|
if lsof -Pi :5000 -sTCP:LISTEN -t >/dev/null 2>&1; then
|
||||||
|
echo "⚠️ Porta 5000 occupata, killing processo..."
|
||||||
|
lsof -ti:5000 | xargs kill -9 2>/dev/null || true
|
||||||
|
sleep 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Restart usando check_frontend.sh
|
||||||
|
echo "🚀 Starting frontend..."
|
||||||
|
/opt/ids/deployment/check_frontend.sh
|
||||||
|
|
||||||
|
# Attendi avvio
|
||||||
|
sleep 3
|
||||||
|
|
||||||
|
# Verifica
|
||||||
|
if pgrep -f "vite" > /dev/null; then
|
||||||
|
PID=$(pgrep -f "vite")
|
||||||
|
echo "✅ Frontend avviato con PID: $PID"
|
||||||
|
echo "📡 Server disponibile su: http://localhost:5000"
|
||||||
|
else
|
||||||
|
echo "❌ Errore: Frontend non avviato!"
|
||||||
|
echo "📋 Controlla log: tail -f /var/log/ids/frontend.log"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
@ -1,5 +1,5 @@
|
|||||||
import { sql, relations } from "drizzle-orm";
|
import { sql, relations } from "drizzle-orm";
|
||||||
import { pgTable, text, varchar, integer, timestamp, decimal, boolean, index, bigint } from "drizzle-orm/pg-core";
|
import { pgTable, text, varchar, integer, timestamp, decimal, boolean, index, bigint, unique } from "drizzle-orm/pg-core";
|
||||||
import { createInsertSchema } from "drizzle-zod";
|
import { createInsertSchema } from "drizzle-zod";
|
||||||
import { z } from "zod";
|
import { z } from "zod";
|
||||||
|
|
||||||
@ -121,6 +121,8 @@ export const networkAnalytics = pgTable("network_analytics", {
|
|||||||
}, (table) => ({
|
}, (table) => ({
|
||||||
dateHourIdx: index("network_analytics_date_hour_idx").on(table.date, table.hour),
|
dateHourIdx: index("network_analytics_date_hour_idx").on(table.date, table.hour),
|
||||||
dateIdx: index("network_analytics_date_idx").on(table.date),
|
dateIdx: index("network_analytics_date_idx").on(table.date),
|
||||||
|
// CRITICAL: Vincolo UNIQUE per ON CONFLICT in aggregator
|
||||||
|
dateHourUnique: unique("network_analytics_date_hour_key").on(table.date, table.hour),
|
||||||
}));
|
}));
|
||||||
|
|
||||||
// Schema version tracking for database migrations
|
// Schema version tracking for database migrations
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user