142 lines
4.8 KiB
Bash
Executable File
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 !"
|