57 lines
1.8 KiB
Bash
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!"
|