#!/bin/bash # Seeding script for external database set -e SERVICE_NAME="external" SEED_FILE="${SEED_FILE:-infrastructure/scripts/seeds/${SERVICE_NAME}_seed.sql}" echo "Starting database seeding for $SERVICE_NAME..." # Get database credentials from Kubernetes secrets DB_USER=$(kubectl get secret database-secrets -n bakery-ia -o jsonpath='{.data.EXTERNAL_DB_USER}' | base64 -d) DB_NAME=$(kubectl get configmap bakery-config -n bakery-ia -o jsonpath='{.data.EXTERNAL_DB_NAME}') # Get the pod name POD_NAME=$(kubectl get pods -n bakery-ia -l app.kubernetes.io/name=external-db -o jsonpath='{.items[0].metadata.name}') if [ -z "$POD_NAME" ]; then echo "Error: Could not find external database pod" exit 1 fi # Check if seed file exists if [ ! -f "$SEED_FILE" ]; then echo "Warning: Seed file not found: $SEED_FILE" echo "Creating sample seed file..." mkdir -p "infrastructure/scripts/seeds" cat > "$SEED_FILE" << 'SEED_EOF' -- Sample seed data for external service -- Add your seed data here -- Example: -- INSERT INTO sample_table (name, created_at) VALUES -- ('Sample Data 1', NOW()), -- ('Sample Data 2', NOW()); -- Note: Replace with actual seed data for your external service SELECT 'Seed file created. Please add your seed data.' as message; SEED_EOF echo "Sample seed file created at: $SEED_FILE" echo "Please edit this file to add your actual seed data" exit 0 fi echo "Applying seed data from: $SEED_FILE" kubectl exec -i "$POD_NAME" -n bakery-ia -- psql -U "$DB_USER" "$DB_NAME" < "$SEED_FILE" if [ $? -eq 0 ]; then echo "Seeding completed successfully" else echo "Seeding failed" exit 1 fi