Some checks failed
Monorepo Pipeline / 🧪 Quality Assurance (push) Failing after 1m5s
Monorepo Pipeline / 🚀 Release (push) Has been skipped
Monorepo Pipeline / 🐳 Build Directus (Base) (push) Has been skipped
Monorepo Pipeline / 🐳 Build Gatekeeper (Product) (push) Has been skipped
Monorepo Pipeline / 🐳 Build Build-Base (push) Has been skipped
Monorepo Pipeline / 🐳 Build Production Runtime (push) Has been skipped
51 lines
1.5 KiB
Bash
Executable File
51 lines
1.5 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
ENV=$1
|
|
REMOTE_HOST="root@infra.mintel.me"
|
|
REMOTE_DIR="/opt/infra/directus"
|
|
|
|
if [ -z "$ENV" ]; then
|
|
echo "Usage: ./scripts/cms-apply.sh [local|infra]"
|
|
exit 1
|
|
fi
|
|
|
|
case $ENV in
|
|
local)
|
|
CONTAINER=$(docker compose ps -q directus)
|
|
if [ -z "$CONTAINER" ]; then
|
|
echo "❌ Local directus container not found."
|
|
exit 1
|
|
fi
|
|
echo "🚀 Applying schema locally..."
|
|
docker exec "$CONTAINER" npx directus schema apply /directus/schema/snapshot.yaml --yes
|
|
;;
|
|
infra)
|
|
PROJECT_NAME="directus"
|
|
|
|
echo "📤 Uploading snapshot to $ENV..."
|
|
# Ensure remote directory exists
|
|
ssh "$REMOTE_HOST" "mkdir -p $REMOTE_DIR/directus/schema"
|
|
scp ./directus/schema/snapshot.yaml "$REMOTE_HOST:$REMOTE_DIR/directus/schema/snapshot.yaml"
|
|
|
|
echo "🔍 Detecting remote container..."
|
|
REMOTE_CONTAINER=$(ssh "$REMOTE_HOST" "cd $REMOTE_DIR && docker compose -p $PROJECT_NAME ps -q directus")
|
|
|
|
if [ -z "$REMOTE_CONTAINER" ]; then
|
|
echo "❌ Remote container for $ENV not found."
|
|
exit 1
|
|
fi
|
|
|
|
echo "🚀 Applying schema to $ENV..."
|
|
ssh "$REMOTE_HOST" "docker exec $REMOTE_CONTAINER npx directus schema apply /directus/schema/snapshot.yaml --yes"
|
|
|
|
echo "🔄 Restarting Directus to clear cache..."
|
|
ssh "$REMOTE_HOST" "cd $REMOTE_DIR && docker compose -p $PROJECT_NAME restart directus"
|
|
;;
|
|
*)
|
|
echo "❌ Invalid environment: $ENV. Only 'local' and 'infra' are supported."
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
echo "✨ Schema apply complete!"
|