Files
2024-02-15 17:01:50 +00:00

58 lines
1.5 KiB
Bash
Executable File

#!/bin/bash
# Backfills all the CDC tables
set -e
declare -a STORAGES=("groupedmessages" "groupassignees")
log_message() {
GREEN='\033[0;32m'
NC='\033[0m'
echo -e "${GREEN}${1}${NC}"
}
mkdir -p /tmp/cdc-snapshots/
log_message "********* Taking the snapshot from Postgres *********"
cd "$(dirname "$0")"
docker run \
-v "$(pwd)"/../config/cdc/configuration.yaml:/etc/cdc/configuration.yaml \
-v "$(pwd)"/../config/cdc/cdc-snapshot-config.yaml:/etc/cdc/cdc-snapshot-config.yaml \
-v /tmp/cdc-snapshots:/tmp/cdc-snapshots \
--rm \
--network sentry \
ghcr.io/getsentry/cdc:latest \
cdc -c /etc/cdc/configuration.yaml \
snapshot --snapshot-config /etc/cdc/cdc-snapshot-config.yaml \
2>&1 | tee /tmp/cdc-snapshots/snapshot.log
SNAPSHOT_ID=$(awk '{ if($4=="Starting" && $5=="snapshot" && $6=="ID") print $7}' /tmp/cdc-snapshots/snapshot.log )
SNAPSHOT_PATH="/tmp/cdc-snapshots/cdc_snapshot_snuba_$SNAPSHOT_ID"
rm /tmp/cdc-snapshots/snapshot.log
log_message "********* Loading the snapshot into Snuba *********"
for i in "${!STORAGES[@]}";
do
log_message "********* Loading ${STORAGES[$i]}"
docker run \
-v "$SNAPSHOT_PATH"/:/tmp/cdc-snapshot \
--rm \
--network sentry \
-e SNUBA_SETTINGS=docker \
-e CLICKHOUSE_HOST=sentry_clickhouse \
getsentry/snuba:nightly \
snuba bulk-load --storage="${STORAGES[$i]}" \
--source=/tmp/cdc-snapshot \
--ignore-existing-data \
--pre-processed \
--show-progress
done
log_message "********* Done *********"
echo "You can now remove the snapshot from $SNAPSHOT_PATH"