Fixed Step 3 pipeline_configs migration: - Simplified JSONB aggregation logic - Properly scope pc alias in subqueries - Use UNNEST with FROM clause for array expansion Previous version had correlation issues with nested subqueries.
75 lines
3.9 KiB
Bash
75 lines
3.9 KiB
Bash
#!/bin/bash
|
|
# Test Migration 020: Unified Prompt System (Issue #28)
|
|
|
|
echo "═══════════════════════════════════════════════════════════"
|
|
echo "Migration 020: Unified Prompt System - Verification Tests"
|
|
echo "═══════════════════════════════════════════════════════════"
|
|
echo ""
|
|
|
|
POSTGRES_CONTAINER="dev-mitai-postgres"
|
|
DB_USER="mitai_dev"
|
|
DB_NAME="mitai_dev"
|
|
|
|
echo "Test 1: Migration 020 applied"
|
|
echo "─────────────────────────────────────────────────────────"
|
|
docker exec $POSTGRES_CONTAINER psql -U $DB_USER -d $DB_NAME -c \
|
|
"SELECT version, applied_at FROM schema_migrations WHERE version = '020';"
|
|
echo ""
|
|
|
|
echo "Test 2: New columns exist in ai_prompts"
|
|
echo "─────────────────────────────────────────────────────────"
|
|
docker exec $POSTGRES_CONTAINER psql -U $DB_USER -d $DB_NAME -c \
|
|
"SELECT column_name, data_type
|
|
FROM information_schema.columns
|
|
WHERE table_name = 'ai_prompts'
|
|
AND column_name IN ('type', 'stages', 'output_format', 'output_schema')
|
|
ORDER BY column_name;"
|
|
echo ""
|
|
|
|
echo "Test 3: Existing prompts migrated to pipeline type"
|
|
echo "─────────────────────────────────────────────────────────"
|
|
docker exec $POSTGRES_CONTAINER psql -U $DB_USER -d $DB_NAME -c \
|
|
"SELECT slug, type,
|
|
CASE WHEN stages IS NOT NULL THEN 'Has stages' ELSE 'No stages' END as stages_status,
|
|
output_format
|
|
FROM ai_prompts
|
|
WHERE slug LIKE 'pipeline_%'
|
|
LIMIT 5;"
|
|
echo ""
|
|
|
|
echo "Test 4: Pipeline configs migrated to ai_prompts"
|
|
echo "─────────────────────────────────────────────────────────"
|
|
docker exec $POSTGRES_CONTAINER psql -U $DB_USER -d $DB_NAME -c \
|
|
"SELECT slug, name, type,
|
|
jsonb_array_length(stages) as num_stages
|
|
FROM ai_prompts
|
|
WHERE slug LIKE 'pipeline_config_%';"
|
|
echo ""
|
|
|
|
echo "Test 5: Stages JSONB structure (sample)"
|
|
echo "─────────────────────────────────────────────────────────"
|
|
docker exec $POSTGRES_CONTAINER psql -U $DB_USER -d $DB_NAME -c \
|
|
"SELECT slug, jsonb_pretty(stages) as stages_structure
|
|
FROM ai_prompts
|
|
WHERE slug LIKE 'pipeline_config_%'
|
|
LIMIT 1;"
|
|
echo ""
|
|
|
|
echo "Test 6: Backup table created"
|
|
echo "─────────────────────────────────────────────────────────"
|
|
docker exec $POSTGRES_CONTAINER psql -U $DB_USER -d $DB_NAME -c \
|
|
"SELECT COUNT(*) as backup_count FROM pipeline_configs_backup_pre_020;"
|
|
echo ""
|
|
|
|
echo "Test 7: Indices created"
|
|
echo "─────────────────────────────────────────────────────────"
|
|
docker exec $POSTGRES_CONTAINER psql -U $DB_USER -d $DB_NAME -c \
|
|
"SELECT indexname FROM pg_indexes
|
|
WHERE tablename = 'ai_prompts'
|
|
AND indexname LIKE 'idx_ai_prompts_%';"
|
|
echo ""
|
|
|
|
echo "═══════════════════════════════════════════════════════════"
|
|
echo "Migration 020 Tests Complete!"
|
|
echo "═══════════════════════════════════════════════════════════"
|