Files
musadeq/db-fix.sh

57 lines
1.8 KiB
Bash

#!/bin/bash
echo "🛠️ Applying manual schema updates to PostgreSQL..."
DOCKER_CMD="docker compose"
if ! docker compose version > /dev/null 2>&1; then
DOCKER_CMD="docker-compose"
fi
DB_CONTAINER=$($DOCKER_CMD ps -q db)
if [ -z "$DB_CONTAINER" ]; then
echo "❌ Database container is not running!"
exit 1
fi
if [ -f ".env" ]; then
source .env
else
echo "⚠️ .env file not found. Using default values..."
DB_USER="musadaq_user"
DB_NAME="musadaq_db"
fi
echo "📦 Database container found. Executing ALTER statements..."
docker exec -i $DB_CONTAINER psql -U $DB_USER -d $DB_NAME <<EOF
-- Add super_admin to roles enum if it doesn't exist
DO \$\$
BEGIN
IF NOT EXISTS (SELECT 1 FROM pg_type t JOIN pg_enum e ON t.oid = e.enumtypid WHERE t.typname = 'users_role_enum' AND e.enumlabel = 'super_admin') THEN
ALTER TYPE "users_role_enum" ADD VALUE 'super_admin';
END IF;
END \$\$;
-- Set the main user as Super Admin
UPDATE "users" SET "role" = 'super_admin' WHERE "email" = 'hamzaayed1@tripz-egypt.com';
-- Add missing columns to User
ALTER TABLE "users" ADD COLUMN IF NOT EXISTS "company_id" uuid;
-- Add missing columns to Invoice
ALTER TABLE "invoices" ADD COLUMN IF NOT EXISTS "qr_code" text;
ALTER TABLE "invoices" ADD COLUMN IF NOT EXISTS "ai_confidence_score" numeric(4,3);
ALTER TABLE "invoices" ADD COLUMN IF NOT EXISTS "ai_prompt_tokens" integer DEFAULT 0;
ALTER TABLE "invoices" ADD COLUMN IF NOT EXISTS "ai_completion_tokens" integer DEFAULT 0;
ALTER TABLE "invoices" ADD COLUMN IF NOT EXISTS "ai_total_cost" numeric(10,6) DEFAULT 0;
-- Add missing columns to Company
ALTER TABLE "companies" ADD COLUMN IF NOT EXISTS "certificate_path" varchar(255);
ALTER TABLE "companies" ADD COLUMN IF NOT EXISTS "certificate_password_encrypted" varchar(500);
EOF
echo "✅ Schema updates applied successfully!"