41 lines
1.2 KiB
Bash
41 lines
1.2 KiB
Bash
#!/bin/bash
|
|
|
|
# === Configuration ===
|
|
BUCKET_NAME="ibc-db-backup"
|
|
ENDPOINT_URL="https://s3.eu-central-3.ionoscloud.com"
|
|
LOCAL_DOWNLOAD_DIR="./" # Where to save the file
|
|
|
|
# === Get latest file from IONOS S3 bucket ===
|
|
LATEST_FILE=$(aws s3api list-objects-v2 \
|
|
--bucket "$BUCKET_NAME" \
|
|
--prefix "data-dump" \
|
|
--endpoint-url "$ENDPOINT_URL" \
|
|
--query 'Contents | sort_by(@, &LastModified) | [-1].Key' \
|
|
--output text)
|
|
|
|
# === Check if file was found ===
|
|
if [ "$LATEST_FILE" == "None" ] || [ -z "$LATEST_FILE" ]; then
|
|
echo "❌ No matching .sql.br file found."
|
|
exit 1
|
|
fi
|
|
|
|
FILENAME=$(basename "$LATEST_FILE")
|
|
SQL_FILE="${FILENAME%.br}" # Remove .br suffix
|
|
|
|
echo "📥 Downloading $LATEST_FILE"
|
|
aws s3 cp "s3://$BUCKET_NAME/$LATEST_FILE" "$LOCAL_DOWNLOAD_DIR" \
|
|
--endpoint-url "$ENDPOINT_URL"
|
|
|
|
# === Decompress with Brotli ===
|
|
echo "🗜️ Decompressing $FILENAME -> $SQL_FILE"
|
|
brotli -d "$FILENAME"
|
|
|
|
# === Import into Postgres inside Docker ===
|
|
echo "🐘 Importing into PostgreSQL (online-energieausweis-database-1:main)"
|
|
docker exec -i "online-energieausweis-database-1" env PGPASSWORD="hHMP8cd^N3SnzGRR" \
|
|
psql -U "main" -d "main" < "$SQL_FILE"
|
|
|
|
echo "✅ Import complete."
|
|
|
|
# === Optional: Clean up
|
|
rm "$FILENAME" "$SQL_FILE" |