Files
bamort/backend/transfer_sqlite_to_mariadb.sh
T

63 lines
1.9 KiB
Bash
Raw Normal View History

#!/bin/bash
# Script to transfer data from SQLite test database to MariaDB using the maintenance endpoint
# Usage: ./transfer_sqlite_to_mariadb.sh [clear]
BACKEND_URL="http://localhost:8180"
ENDPOINT="/api/maintenance/transfer-sqlite-to-mariadb"
echo "=== Bamort Data Transfer: SQLite to MariaDB ==="
echo ""
# Check if clear parameter is provided
CLEAR_PARAM=""
if [ "$1" == "clear" ]; then
echo "⚠️ WARNING: This will clear all existing data in MariaDB before transfer!"
read -p "Are you sure you want to continue? (y/N): " confirm
if [ "$confirm" != "y" ] && [ "$confirm" != "Y" ]; then
echo "Transfer cancelled."
exit 0
fi
CLEAR_PARAM="?clear=true"
echo "✅ Proceeding with data clearing..."
else
echo "️ Existing data in MariaDB will be preserved (use 'clear' parameter to clear first)"
fi
echo ""
echo "🔄 Starting data transfer..."
echo "📍 Source: ./testdata/prepared_test_data.db (SQLite)"
echo "📍 Target: mariadb:3306/bamort (MariaDB)"
echo ""
# Make the API request
echo "🚀 Calling transfer endpoint..."
response=$(curl -s -w "\n%{http_code}" -X POST "${BACKEND_URL}${ENDPOINT}${CLEAR_PARAM}")
# Extract HTTP status code (last line)
http_code=$(echo "$response" | tail -n1)
# Extract response body (all lines except last)
response_body=$(echo "$response" | head -n -1)
echo ""
if [ "$http_code" = "200" ]; then
echo "✅ Transfer completed successfully!"
echo ""
echo "📊 Response:"
echo "$response_body" | jq '.' 2>/dev/null || echo "$response_body"
else
echo "❌ Transfer failed with HTTP status: $http_code"
echo ""
echo "📋 Error details:"
echo "$response_body" | jq '.' 2>/dev/null || echo "$response_body"
exit 1
fi
echo ""
echo "🎉 Data transfer complete!"
echo ""
echo "💡 Tips:"
echo " - Check the statistics above to verify the transfer"
echo " - Use the backend logs for detailed information"
echo " - Update your .env file to use MariaDB if needed"