Files
wevads-arsenal/fix-database.sh

142 lines
4.8 KiB
Bash
Executable File

#!/bin/bash
echo "🔧 RÉPARATION DE LA BASE DE DONNÉES"
echo "==================================="
# 1. Supprimer les tables problématiques
echo "1. Nettoyage des tables existantes..."
sudo -u postgres psql -d adx_system -c "
DROP TABLE IF EXISTS
hamid_providers CASCADE,
hamid_requests CASCADE,
knowledge_base CASCADE,
kb_categories CASCADE,
mind_cycles CASCADE,
mind_diagnostics CASCADE,
mind_actions CASCADE,
mind_learnings CASCADE,
alerts_config CASCADE,
alerts_log CASCADE,
reputation_checks CASCADE,
ip_reputation CASCADE,
system_metrics CASCADE,
email_metrics CASCADE,
o365_accounts CASCADE,
brain_configs CASCADE,
brain_tests CASCADE,
audit_log CASCADE;
DROP VIEW IF EXISTS daily_summary, provider_performance, current_system_health;
DROP FUNCTION IF EXISTS update_updated_at_column(), log_changes();
DROP EXTENSION IF EXISTS \"uuid-ossp\";
"
# 2. Créer un schéma simplifié
echo "2. Création du schéma simplifié..."
cat > /tmp/simple-schema.sql << 'SCHEMA_EOF'
-- Extension UUID
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
-- Table: hamid_providers
CREATE TABLE hamid_providers (
id SERIAL PRIMARY KEY,
name VARCHAR(50) NOT NULL UNIQUE,
api_url VARCHAR(255),
api_key TEXT,
model VARCHAR(100),
priority INT DEFAULT 99,
timeout_ms INT DEFAULT 10000,
status VARCHAR(20) DEFAULT 'active',
avg_latency FLOAT DEFAULT 0,
success_rate FLOAT DEFAULT 100,
total_requests INT DEFAULT 0,
created_at TIMESTAMP DEFAULT NOW(),
updated_at TIMESTAMP DEFAULT NOW()
);
-- Table: hamid_requests
CREATE TABLE hamid_requests (
id SERIAL PRIMARY KEY,
request_id VARCHAR(50) DEFAULT 'REQ-' || replace(cast(uuid_generate_v4() as text), '-', ''),
provider_id INT REFERENCES hamid_providers(id),
prompt TEXT,
response TEXT,
tokens_used INT,
latency_ms INT,
success BOOLEAN DEFAULT true,
error_message TEXT,
created_at TIMESTAMP DEFAULT NOW()
);
-- Table: mind_cycles
CREATE TABLE mind_cycles (
id SERIAL PRIMARY KEY,
cycle_id VARCHAR(50) DEFAULT 'CYCLE-' || replace(cast(uuid_generate_v4() as text), '-', ''),
trigger_type VARCHAR(20) DEFAULT 'cron',
started_at TIMESTAMP DEFAULT NOW(),
ended_at TIMESTAMP,
status VARCHAR(20) DEFAULT 'running',
health_score INT,
issues_found INT DEFAULT 0,
actions_taken INT DEFAULT 0,
result_json JSONB,
created_at TIMESTAMP DEFAULT NOW()
);
-- Table: alerts_config
CREATE TABLE alerts_config (
id SERIAL PRIMARY KEY,
channel VARCHAR(20),
endpoint VARCHAR(255),
min_severity VARCHAR(20) DEFAULT 'WARNING',
active BOOLEAN DEFAULT true,
created_at TIMESTAMP DEFAULT NOW()
);
-- Table: system_metrics
CREATE TABLE system_metrics (
id SERIAL PRIMARY KEY,
cpu_percent FLOAT,
ram_percent FLOAT,
disk_percent FLOAT,
load_1min FLOAT,
load_5min FLOAT,
load_15min FLOAT,
collected_at TIMESTAMP DEFAULT NOW()
);
-- Données initiales
INSERT INTO hamid_providers (name, api_url, model, priority, timeout_ms) VALUES
('Cerebras', 'https://api.cerebras.ai/v1/chat/completions', 'cerebras-llama3.1-70b', 1, 10000),
('Groq', 'https://api.groq.com/openai/v1/chat/completions', 'mixtral-8x7b-32768', 2, 10000),
('DeepSeek', 'https://api.deepseek.com/v1/chat/completions', 'deepseek-chat', 3, 15000),
('Gemini', 'https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:generateContent', 'gemini-pro', 4, 15000),
('Claude', 'https://api.anthropic.com/v1/messages', 'claude-3-sonnet-20240229', 5, 20000),
('Hyperbolic', 'https://api.hyperbolic.xyz/v1/chat/completions', 'hyperbolic-7b', 6, 10000),
('Mistral', 'https://api.mistral.ai/v1/chat/completions', 'mistral-medium', 7, 15000),
('Cohere', 'https://api.cohere.ai/v1/generate', 'command-r-plus', 8, 15000),
('SambaNova', 'https://api.sambanova.ai/v1/chat/completions', 'sn-llama-3.1-70b', 9, 10000),
('Ollama', 'http://127.0.0.1:11434/api/chat', 'llama3.1', 10, 30000),
('OpenRouter', 'https://openrouter.ai/api/v1/chat/completions', 'openrouter/quasar-alpha', 11, 20000);
INSERT INTO alerts_config (channel, endpoint, min_severity, active) VALUES
('dashboard', 'internal://dashboard', 'INFO', true),
('telegram', 'https://api.telegram.org/bot{token}/sendMessage', 'WARNING', false),
('email', 'admin@wevads.com', 'CRITICAL', false);
-- Vérification
SELECT '✅ Schéma créé avec succès!' as message;
SELECT COUNT(*) as tables_count FROM information_schema.tables WHERE table_schema = 'public';
SCHEMA_EOF
sudo -u postgres psql -d adx_system -f /tmp/simple-schema.sql
# 3. Accorder les permissions
echo "3. Configuration des permissions..."
sudo -u postgres psql -d adx_system -c "
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO adx_user;
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO adx_user;
GRANT USAGE ON SCHEMA public TO adx_user;
"
echo "✅ RÉPARATION TERMINÉE !"