Ctrl K
ComunidadGuías…

scripts/verify-version-databases.sh

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
#!/bin/bash
# Verify all version database snapshots

set -e

echo "=== ActaLog Version Database Verification ==="
echo ""

# Get current version
MAJOR=$(grep 'Major =' pkg/version/version.go | grep -oP '\d+')
MINOR=$(grep 'Minor =' pkg/version/version.go | grep -oP '\d+')
PATCH=$(grep 'Patch =' pkg/version/version.go | grep -oP '\d+')
VERSION="${MAJOR}.${MINOR}.${PATCH}"

echo "Current Version: $VERSION"
echo ""

# Check SQLite snapshots
echo "SQLite Snapshots:"
if [ -d "db_versions" ]; then
    for db in db_versions/actalog_*.db; do
        if [ -f "$db" ]; then
            filename=$(basename "$db")
            version=$(echo "$filename" | sed 's/actalog_//' | sed 's/\.db//')
            schema_version=$(sqlite3 "$db" "SELECT version FROM schema_migrations ORDER BY applied_at DESC LIMIT 1;" 2>/dev/null || echo "error")
            user_count=$(sqlite3 "$db" "SELECT COUNT(*) FROM users;" 2>/dev/null || echo "0")
            sub_count=$(sqlite3 "$db" "SELECT COUNT(*) FROM user_subscriptions;" 2>/dev/null || echo "0")

            if [ "$schema_version" = "$version" ]; then
                echo "  ✓ $filename - v$schema_version ($user_count users, $sub_count subscriptions)"
            else
                echo "  ✗ $filename - schema v$schema_version (expected v$version)"
            fi
        fi
    done
else
    echo "  ⚠ db_versions directory not found"
fi
echo ""

# Check PostgreSQL schemas
echo "PostgreSQL Schemas (192.168.1.143):"
if command -v psql &> /dev/null; then
    PGPASSWORD='yub.miha' psql -h 192.168.1.143 -U jcz -d jcz -t -A -c "
        SELECT schema_name
        FROM information_schema.schemata
        WHERE schema_name LIKE 'actalog_%'
        ORDER BY schema_name;
    " 2>/dev/null | while read -r schema; do
        if [ -n "$schema" ]; then
            version=$(echo "$schema" | sed 's/actalog_//' | tr '_' '.')
            schema_version=$(PGPASSWORD='yub.miha' psql -h 192.168.1.143 -U jcz -d jcz -t -A -c "
                SELECT version FROM $schema.schema_migrations ORDER BY applied_at DESC LIMIT 1;
            " 2>/dev/null | tr -d ' ')
            user_count=$(PGPASSWORD='yub.miha' psql -h 192.168.1.143 -U jcz -d jcz -t -A -c "
                SELECT COUNT(*) FROM $schema.users;
            " 2>/dev/null | tr -d ' ')

            if [ "$schema_version" = "$version" ]; then
                echo "  ✓ $schema - v$schema_version ($user_count users)"
            else
                echo "  ✗ $schema - schema v$schema_version (expected v$version)"
            fi
        fi
    done
else
    echo "  ⚠ psql not available, skipping PostgreSQL verification"
fi
echo ""

# Check MariaDB databases
echo "MariaDB Databases (192.168.1.234):"
if command -v mysql &> /dev/null; then
    mysql -h 192.168.1.234 -u jcz -p'yub.miha' -N -e "
        SHOW DATABASES LIKE 'actalog_%';
    " 2>/dev/null | while read -r database; do
        if [ -n "$database" ]; then
            version=$(echo "$database" | sed 's/actalog_//' | tr '_' '.')
            schema_version=$(mysql -h 192.168.1.234 -u jcz -p'yub.miha' -N "$database" -e "
                SELECT version FROM schema_migrations ORDER BY applied_at DESC LIMIT 1;
            " 2>/dev/null)
            user_count=$(mysql -h 192.168.1.234 -u jcz -p'yub.miha' -N "$database" -e "
                SELECT COUNT(*) FROM users;
            " 2>/dev/null)

            if [ "$schema_version" = "$version" ]; then
                echo "  ✓ $database - v$schema_version ($user_count users)"
            else
                echo "  ✗ $database - schema v$schema_version (expected v$version)"
            fi
        fi
    done
else
    echo "  ⚠ mysql not available, skipping MariaDB verification"
fi
echo ""

echo "✓ Verification complete"
echo ""
echo "For detailed access information, see: db_versions/VERSION_DATABASES.md"