diff --git a/package.json b/package.json index 4558cf6..28770ab 100644 --- a/package.json +++ b/package.json @@ -13,8 +13,8 @@ "cms:push:infra": "./scripts/sync-directus.sh push infra", "cms:pull:infra": "./scripts/sync-directus.sh pull infra", "cms:schema:snapshot": "./scripts/cms-snapshot.sh", - "cms:schema:snapshot:infra": "./scripts/cms-snapshot.sh infra", - "cms:schema:apply": "./scripts/cms-apply.sh", + "cms:schema:apply": "./scripts/cms-apply.sh local", + "cms:schema:apply:infra": "./scripts/cms-apply.sh infra", "dev:infra": "docker-compose up -d directus directus-db", "release": "pnpm build && changeset publish", "release:tag": "pnpm build && pnpm -r publish --no-git-checks --access public", diff --git a/packages/cms-infra/database/data.db b/packages/cms-infra/database/data.db index 291ff97..5e298f3 100644 Binary files a/packages/cms-infra/database/data.db and b/packages/cms-infra/database/data.db differ diff --git a/scripts/cms-apply.sh b/scripts/cms-apply.sh index 27b28c9..8154b8b 100755 --- a/scripts/cms-apply.sh +++ b/scripts/cms-apply.sh @@ -1,9 +1,14 @@ #!/bin/bash -ENV=$1 +# Configuration +PROJECT="infra-cms" +SCHEMA_PATH="./packages/cms-infra/schema/snapshot.yaml" +CMD_PREFIX="docker-compose -f packages/cms-infra/docker-compose.yml" REMOTE_HOST="root@infra.mintel.me" REMOTE_DIR="/opt/infra/directus" +ENV=$1 + if [ -z "$ENV" ]; then echo "Usage: ./scripts/cms-apply.sh [local|infra]" exit 1 @@ -11,38 +16,44 @@ fi case $ENV in local) - CONTAINER=$(docker compose ps -q directus) - if [ -z "$CONTAINER" ]; then - echo "❌ Local directus container not found." + # Default to infra-cms package for at-mintel + PROJECT="infra-cms" + CMD_PREFIX="docker-compose -f packages/cms-infra/docker-compose.yml" + + LOCAL_CONTAINER=$($CMD_PREFIX ps -q $PROJECT) + if [ -z "$LOCAL_CONTAINER" ]; then + echo "❌ Local $PROJECT container not found. Is it running?" exit 1 fi - echo "🚀 Applying schema locally..." - docker exec "$CONTAINER" npx directus schema apply /directus/schema/snapshot.yaml --yes + + echo "🚀 Applying schema to LOCAL $PROJECT..." + docker exec "$LOCAL_CONTAINER" npx directus schema apply -y /directus/schema/snapshot.yaml ;; infra) - PROJECT_NAME="directus" + # 'infra' is the remote production server for at-mintel + PROJECT="directus" # Remote project name is usually 'directus' in docker-compose - echo "📤 Uploading snapshot to $ENV..." + echo "📤 Uploading snapshot to REMOTE $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" + scp ./packages/cms-infra/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") + REMOTE_CONTAINER=$(ssh "$REMOTE_HOST" "cd $REMOTE_DIR && docker compose -p $PROJECT 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 "🚀 Applying schema to REMOTE $ENV..." + ssh "$REMOTE_HOST" "docker exec $REMOTE_CONTAINER npx directus schema apply -y /directus/schema/snapshot.yaml" - echo "🔄 Restarting Directus to clear cache..." - ssh "$REMOTE_HOST" "cd $REMOTE_DIR && docker compose -p $PROJECT_NAME restart directus" + echo "🔄 Restarting remote Directus to clear cache..." + ssh "$REMOTE_HOST" "cd $REMOTE_DIR && docker compose -p $PROJECT restart directus" ;; *) - echo "❌ Invalid environment: $ENV. Only 'local' and 'infra' are supported." + echo "❌ Invalid environment: $ENV. Supported: local, infra." exit 1 ;; esac diff --git a/scripts/cms-snapshot.sh b/scripts/cms-snapshot.sh index 89acd5d..6067cbf 100755 --- a/scripts/cms-snapshot.sh +++ b/scripts/cms-snapshot.sh @@ -1,17 +1,9 @@ #!/bin/bash # Configuration -PROJECT="directus" -SCHEMA_PATH="./directus/schema/snapshot.yaml" -CMD_PREFIX="" - -if [ "$1" == "infra" ]; then - PROJECT="infra-cms" - SCHEMA_PATH="./packages/cms-infra/schema/snapshot.yaml" - CMD_PREFIX="docker-compose -f packages/cms-infra/docker-compose.yml" -else - CMD_PREFIX="docker compose" -fi +PROJECT="infra-cms" +SCHEMA_PATH="./packages/cms-infra/schema/snapshot.yaml" +CMD_PREFIX="docker-compose -f packages/cms-infra/docker-compose.yml" # Detect local container LOCAL_CONTAINER=$($CMD_PREFIX ps -q $PROJECT) @@ -21,7 +13,7 @@ if [ -z "$LOCAL_CONTAINER" ]; then exit 1 fi -echo "📸 Creating schema snapshot for $PROJECT..." +echo "📸 Creating schema snapshot for local $PROJECT..." # Note: we save it to the mounted volume path inside the container docker exec "$LOCAL_CONTAINER" npx directus schema snapshot -y /directus/schema/snapshot.yaml