imetting/backend/sql/migrations/rename_model_tables_to_sing...

158 lines
4.3 KiB
SQL

-- Migration: rename model config tables to singular naming
-- Target names:
-- llm_model_config
-- audio_model_config
SET @rename_llm_sql = (
SELECT IF(
EXISTS (
SELECT 1 FROM information_schema.tables
WHERE table_schema = DATABASE() AND table_name = 'llm_model_configs'
)
AND NOT EXISTS (
SELECT 1 FROM information_schema.tables
WHERE table_schema = DATABASE() AND table_name = 'llm_model_config'
),
'RENAME TABLE llm_model_configs TO llm_model_config',
'SELECT 1'
)
);
PREPARE stmt FROM @rename_llm_sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET @rename_audio_sql = (
SELECT IF(
EXISTS (
SELECT 1 FROM information_schema.tables
WHERE table_schema = DATABASE() AND table_name = 'audio_model_configs'
)
AND NOT EXISTS (
SELECT 1 FROM information_schema.tables
WHERE table_schema = DATABASE() AND table_name = 'audio_model_config'
),
'RENAME TABLE audio_model_configs TO audio_model_config',
'SELECT 1'
)
);
PREPARE stmt FROM @rename_audio_sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
-- Remove possible redundant audio/voiceprint fields from llm table (idempotent)
SET @drop_audio_scene_sql = (
SELECT IF(
EXISTS (
SELECT 1 FROM information_schema.columns
WHERE table_schema = DATABASE() AND table_name = 'llm_model_config' AND column_name = 'audio_scene'
),
'ALTER TABLE llm_model_config DROP COLUMN audio_scene',
'SELECT 1'
)
);
PREPARE stmt FROM @drop_audio_scene_sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET @drop_asr_model_sql = (
SELECT IF(
EXISTS (
SELECT 1 FROM information_schema.columns
WHERE table_schema = DATABASE() AND table_name = 'llm_model_config' AND column_name = 'asr_model_name'
),
'ALTER TABLE llm_model_config DROP COLUMN asr_model_name',
'SELECT 1'
)
);
PREPARE stmt FROM @drop_asr_model_sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET @drop_asr_vocab_sql = (
SELECT IF(
EXISTS (
SELECT 1 FROM information_schema.columns
WHERE table_schema = DATABASE() AND table_name = 'llm_model_config' AND column_name = 'asr_vocabulary_id'
),
'ALTER TABLE llm_model_config DROP COLUMN asr_vocabulary_id',
'SELECT 1'
)
);
PREPARE stmt FROM @drop_asr_vocab_sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET @drop_vp_tpl_sql = (
SELECT IF(
EXISTS (
SELECT 1 FROM information_schema.columns
WHERE table_schema = DATABASE() AND table_name = 'llm_model_config' AND column_name = 'vp_template_text'
),
'ALTER TABLE llm_model_config DROP COLUMN vp_template_text',
'SELECT 1'
)
);
PREPARE stmt FROM @drop_vp_tpl_sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET @drop_vp_duration_sql = (
SELECT IF(
EXISTS (
SELECT 1 FROM information_schema.columns
WHERE table_schema = DATABASE() AND table_name = 'llm_model_config' AND column_name = 'vp_duration_seconds'
),
'ALTER TABLE llm_model_config DROP COLUMN vp_duration_seconds',
'SELECT 1'
)
);
PREPARE stmt FROM @drop_vp_duration_sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET @drop_vp_rate_sql = (
SELECT IF(
EXISTS (
SELECT 1 FROM information_schema.columns
WHERE table_schema = DATABASE() AND table_name = 'llm_model_config' AND column_name = 'vp_sample_rate'
),
'ALTER TABLE llm_model_config DROP COLUMN vp_sample_rate',
'SELECT 1'
)
);
PREPARE stmt FROM @drop_vp_rate_sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET @drop_vp_channels_sql = (
SELECT IF(
EXISTS (
SELECT 1 FROM information_schema.columns
WHERE table_schema = DATABASE() AND table_name = 'llm_model_config' AND column_name = 'vp_channels'
),
'ALTER TABLE llm_model_config DROP COLUMN vp_channels',
'SELECT 1'
)
);
PREPARE stmt FROM @drop_vp_channels_sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET @drop_vp_size_sql = (
SELECT IF(
EXISTS (
SELECT 1 FROM information_schema.columns
WHERE table_schema = DATABASE() AND table_name = 'llm_model_config' AND column_name = 'vp_max_size_bytes'
),
'ALTER TABLE llm_model_config DROP COLUMN vp_max_size_bytes',
'SELECT 1'
)
);
PREPARE stmt FROM @drop_vp_size_sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
-- Clean potential non-LLM rows in llm table
DELETE FROM llm_model_config
WHERE model_code IN ('audio_model', 'voiceprint_model');