mitai-jinkendo/test-unified-migration.sh
Lars 95dcf080e5
All checks were successful
Deploy Development / deploy (push) Successful in 42s
Build Test / lint-backend (push) Successful in 0s
Build Test / build-frontend (push) Successful in 13s
fix: migration 020 SQL syntax - correlated subquery issue
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.
2026-03-25 12:58:02 +01:00

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 "═══════════════════════════════════════════════════════════"