mise en place gestion modele chatbot coté enseignant
This commit is contained in:
109
sql/update_chat_tables.sql
Normal file
109
sql/update_chat_tables.sql
Normal file
@ -0,0 +1,109 @@
|
||||
-- ============================================
|
||||
-- WebVal - Mise à jour chat_conversations
|
||||
-- Ajout colonnes pour tracking API (sécurisé)
|
||||
-- ============================================
|
||||
|
||||
-- Désactiver les erreurs temporairement
|
||||
SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0;
|
||||
|
||||
-- Ajouter colonnes une par une (ignore si existe déjà)
|
||||
SET @s = (SELECT IF(
|
||||
(SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS
|
||||
WHERE table_schema = DATABASE()
|
||||
AND table_name = 'chat_conversations'
|
||||
AND column_name = 'provider') > 0,
|
||||
'SELECT ''Column provider already exists''',
|
||||
'ALTER TABLE chat_conversations ADD COLUMN provider VARCHAR(50) DEFAULT ''ollama'''
|
||||
));
|
||||
PREPARE stmt FROM @s;
|
||||
EXECUTE stmt;
|
||||
DEALLOCATE PREPARE stmt;
|
||||
|
||||
SET @s = (SELECT IF(
|
||||
(SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS
|
||||
WHERE table_schema = DATABASE()
|
||||
AND table_name = 'chat_conversations'
|
||||
AND column_name = 'model_used') > 0,
|
||||
'SELECT ''Column model_used already exists''',
|
||||
'ALTER TABLE chat_conversations ADD COLUMN model_used VARCHAR(100) DEFAULT ''ministral-3:3b'''
|
||||
));
|
||||
PREPARE stmt FROM @s;
|
||||
EXECUTE stmt;
|
||||
DEALLOCATE PREPARE stmt;
|
||||
|
||||
SET @s = (SELECT IF(
|
||||
(SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS
|
||||
WHERE table_schema = DATABASE()
|
||||
AND table_name = 'chat_conversations'
|
||||
AND column_name = 'api_response_time_ms') > 0,
|
||||
'SELECT ''Column api_response_time_ms already exists''',
|
||||
'ALTER TABLE chat_conversations ADD COLUMN api_response_time_ms INT DEFAULT NULL'
|
||||
));
|
||||
PREPARE stmt FROM @s;
|
||||
EXECUTE stmt;
|
||||
DEALLOCATE PREPARE stmt;
|
||||
|
||||
SET @s = (SELECT IF(
|
||||
(SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS
|
||||
WHERE table_schema = DATABASE()
|
||||
AND table_name = 'chat_conversations'
|
||||
AND column_name = 'id_enseignant') > 0,
|
||||
'SELECT ''Column id_enseignant already exists''',
|
||||
'ALTER TABLE chat_conversations ADD COLUMN id_enseignant INT DEFAULT NULL'
|
||||
));
|
||||
PREPARE stmt FROM @s;
|
||||
EXECUTE stmt;
|
||||
DEALLOCATE PREPARE stmt;
|
||||
|
||||
-- Index
|
||||
SET @s = (SELECT IF(
|
||||
(SELECT COUNT(*) FROM INFORMATION_SCHEMA.STATISTICS
|
||||
WHERE table_schema = DATABASE()
|
||||
AND table_name = 'chat_conversations'
|
||||
AND index_name = 'idx_provider') > 0,
|
||||
'SELECT ''Index idx_provider already exists''',
|
||||
'ALTER TABLE chat_conversations ADD INDEX idx_provider (provider)'
|
||||
));
|
||||
PREPARE stmt FROM @s;
|
||||
EXECUTE stmt;
|
||||
DEALLOCATE PREPARE stmt;
|
||||
|
||||
-- Foreign key (plus complexe, on teste avec SHOW CREATE TABLE)
|
||||
SET @fk_exists = (SELECT COUNT(*) FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
|
||||
WHERE table_schema = DATABASE()
|
||||
AND table_name = 'chat_conversations'
|
||||
AND referenced_table_name = 'utilisateurs'
|
||||
AND column_name = 'id_enseignant');
|
||||
|
||||
SET @s = IF(@fk_exists > 0,
|
||||
'SELECT ''Foreign key already exists''',
|
||||
'ALTER TABLE chat_conversations ADD FOREIGN KEY (id_enseignant) REFERENCES utilisateurs(id_utilisateur) ON DELETE SET NULL'
|
||||
);
|
||||
PREPARE stmt FROM @s;
|
||||
EXECUTE stmt;
|
||||
DEALLOCATE PREPARE stmt;
|
||||
|
||||
-- Colonne api_cost dans chat_messages
|
||||
SET @s = (SELECT IF(
|
||||
(SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS
|
||||
WHERE table_schema = DATABASE()
|
||||
AND table_name = 'chat_messages'
|
||||
AND column_name = 'api_cost') > 0,
|
||||
'SELECT ''Column api_cost already exists''',
|
||||
'ALTER TABLE chat_messages ADD COLUMN api_cost DECIMAL(10,6) DEFAULT 0.000000'
|
||||
));
|
||||
PREPARE stmt FROM @s;
|
||||
EXECUTE stmt;
|
||||
DEALLOCATE PREPARE stmt;
|
||||
|
||||
-- Restaurer les notes SQL
|
||||
SET SQL_NOTES=@OLD_SQL_NOTES;
|
||||
|
||||
-- Remplir id_enseignant rétroactivement
|
||||
UPDATE chat_conversations cc
|
||||
JOIN tentatives_eleves te ON cc.id_tentative = te.id_tentative
|
||||
JOIN evaluations e ON te.id_evaluation = e.id_evaluation
|
||||
SET cc.id_enseignant = e.id_enseignant
|
||||
WHERE cc.id_enseignant IS NULL;
|
||||
|
||||
SELECT '✅ Colonnes ajoutées avec succès' as Status;
|
||||
Reference in New Issue
Block a user