Files
upstream-tldraw/apps/dotcom/snapshot-state.sh
upstream-mirror a774ac673a
Some checks failed
Deploy analytics worker / Deploy analytics worker to ${{ (github.ref == 'refs/heads/production' && 'production') || (github.ref == 'refs/heads/main' && 'staging') || 'preview' }} (push) Failing after 1s
i18n upload strings / Upload latest strings (push) Failing after 1s
Deploy bemo / Deploy bemo to ${{ (github.ref == 'refs/heads/bemo-production' && 'production') || (github.ref == 'refs/heads/main' && 'staging') || 'preview' }} (push) Failing after 1s
Deploy grafana resources / ${{ github.event_name == 'push' && 'Deploy grafana resources' || 'Validate grafana resources (dry run)' }} (push) Failing after 0s
End to end tests (dotcom) / Check for relevant changes (push) Failing after 0s
End to end tests (examples) / Check for relevant changes (push) Failing after 0s
End to end tests (mermaid readability) / Check for relevant changes (push) Failing after 1s
End to end tests (perf) / Check for relevant changes (push) Failing after 0s
Publish editor extensions / Publish editor extensions (push) Failing after 1s
Publish SDK packages / Remove the publish-packages label (push) Has been skipped
Checks / Tests & checks (push) Has been cancelled
Checks / Build all projects (push) Has been cancelled
Deploy templates / Deploy templates (push) Has been cancelled
End to end tests (dotcom) / End to end tests (dotcom) (push) Has been cancelled
End to end tests (mermaid readability) / End to end tests (mermaid readability) (push) Has been cancelled
End to end tests (perf) / End to end tests (perf) (push) Has been cancelled
Deploy .com / Deploy dotcom to ${{ (github.ref == 'refs/heads/production' && 'production') || (github.ref == 'refs/heads/main' && 'staging') || 'preview' }} (push) Has been cancelled
End to end tests (examples) / End to end tests (examples) (push) Has been cancelled
Publish SDK packages / Publish SDK packages (push) Has been cancelled
Publish SDK packages / Tell user released version (push) Has been cancelled
Publish SDK packages / Publishes code templates to separate repositories (push) Has been cancelled
Publish SDK packages / Deploys the template demos with the new SDK version (push) Has been cancelled
snapshot of https://github.com/tldraw/tldraw.git (main, 2026-09-23; blobs > 131072B omitted)
2026-09-23 16:12:52 +05:00

66 lines
2.0 KiB
Bash
Executable File

#!/bin/bash
set -e
# Script to snapshot wrangler and postgres state for dotcom app
#
# USAGE:
# ./snapshot-state.sh [snapshot-name]
#
# DESCRIPTION:
# Creates a snapshot of the current state of:
# - Wrangler state (from sync-worker/.wrangler)
# - Postgres database volume (docker_tlapp_pgdata)
#
# Snapshots are stored in .snapshots/ directory and can be restored
# using the restore-state.sh script.
#
# EXAMPLES:
# ./snapshot-state.sh # Creates snapshot with timestamp name
# ./snapshot-state.sh my-backup # Creates snapshot named "my-backup"
#
# REQUIREMENTS:
# - Docker must be running
# - Postgres volume must exist (docker_tlapp_pgdata)
# - Wrangler state directory should exist (sync-worker/.wrangler)
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
SNAPSHOTS_DIR="$SCRIPT_DIR/.snapshots"
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
SNAPSHOT_NAME="${1:-$TIMESTAMP}"
SNAPSHOT_DIR="$SNAPSHOTS_DIR/$SNAPSHOT_NAME"
echo "Creating snapshot: $SNAPSHOT_NAME"
mkdir -p "$SNAPSHOT_DIR"
# Snapshot wrangler state
echo "Snapshotting wrangler state..."
WRANGLER_DIR="$SCRIPT_DIR/sync-worker/.wrangler"
if [ -d "$WRANGLER_DIR" ]; then
tar -czf "$SNAPSHOT_DIR/wrangler-state.tar.gz" -C "$SCRIPT_DIR/sync-worker" .wrangler
echo " ✓ Wrangler state saved to $SNAPSHOT_DIR/wrangler-state.tar.gz"
else
echo " ⚠ No wrangler state found at $WRANGLER_DIR"
fi
# Snapshot postgres volume
echo "Snapshotting postgres volume..."
VOLUME_NAME="docker_tlapp_pgdata"
# Check if volume exists
if ! docker volume inspect "$VOLUME_NAME" > /dev/null 2>&1; then
echo " ⚠ Docker volume $VOLUME_NAME not found"
else
# Export postgres volume to tar
docker run --rm \
-v "$VOLUME_NAME:/data" \
-v "$SNAPSHOT_DIR:/backup" \
alpine \
tar -czf /backup/postgres-data.tar.gz -C /data .
echo " ✓ Postgres data saved to $SNAPSHOT_DIR/postgres-data.tar.gz"
fi
echo ""
echo "Snapshot complete: $SNAPSHOT_NAME"
echo "Location: $SNAPSHOT_DIR"