livrare lot 2
This commit is contained in:
commit
8ecc78e729
763 changed files with 164593 additions and 0 deletions
112
backend/production/migrate-to-cluster.sh
Normal file
112
backend/production/migrate-to-cluster.sh
Normal file
|
|
@ -0,0 +1,112 @@
|
|||
#!/bin/bash
|
||||
# =============================================================================
|
||||
# Migration Script: Move Kong & Keycloak DBs to PostgreSQL Cluster
|
||||
# =============================================================================
|
||||
|
||||
set -e
|
||||
|
||||
# Colors
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
NC='\033[0m'
|
||||
|
||||
# Cluster connection
|
||||
CLUSTER_HOST="10.11.50.167"
|
||||
CLUSTER_PORT="5000"
|
||||
CLUSTER_USER="bos_interface"
|
||||
CLUSTER_PASS="interface"
|
||||
|
||||
# Local postgres container
|
||||
LOCAL_PG="staging-dataLayer-postgres"
|
||||
|
||||
echo -e "${YELLOW}=== DIDI Database Migration to Cluster ===${NC}"
|
||||
echo ""
|
||||
|
||||
# Step 1: Create users in cluster
|
||||
echo -e "${YELLOW}[1/6] Creating users in cluster...${NC}"
|
||||
docker exec -e PGPASSWORD=$CLUSTER_PASS $LOCAL_PG psql -h $CLUSTER_HOST -p $CLUSTER_PORT -U $CLUSTER_USER -d DIDI << 'EOF'
|
||||
-- Create kong user if not exists
|
||||
DO $$
|
||||
BEGIN
|
||||
IF NOT EXISTS (SELECT FROM pg_roles WHERE rolname = 'kong') THEN
|
||||
CREATE ROLE kong WITH LOGIN PASSWORD 'kong123';
|
||||
END IF;
|
||||
END $$;
|
||||
|
||||
-- Create keycloak user if not exists
|
||||
DO $$
|
||||
BEGIN
|
||||
IF NOT EXISTS (SELECT FROM pg_roles WHERE rolname = 'keycloak') THEN
|
||||
CREATE ROLE keycloak WITH LOGIN PASSWORD 'keycloak123';
|
||||
END IF;
|
||||
END $$;
|
||||
|
||||
SELECT rolname FROM pg_roles WHERE rolname IN ('kong', 'keycloak');
|
||||
EOF
|
||||
echo -e "${GREEN}✓ Users created${NC}"
|
||||
|
||||
# Step 2: Dump local databases
|
||||
echo -e "${YELLOW}[2/6] Dumping local databases...${NC}"
|
||||
mkdir -p /tmp/db-migration
|
||||
|
||||
docker exec $LOCAL_PG pg_dump -U postgres -Fc kong_db > /tmp/db-migration/kong_db.dump
|
||||
echo " - kong_db dumped ($(du -h /tmp/db-migration/kong_db.dump | cut -f1))"
|
||||
|
||||
docker exec $LOCAL_PG pg_dump -U postgres -Fc keycloak_db > /tmp/db-migration/keycloak_db.dump
|
||||
echo " - keycloak_db dumped ($(du -h /tmp/db-migration/keycloak_db.dump | cut -f1))"
|
||||
echo -e "${GREEN}✓ Dumps complete${NC}"
|
||||
|
||||
# Step 3: Create databases in cluster
|
||||
echo -e "${YELLOW}[3/6] Creating databases in cluster...${NC}"
|
||||
docker exec -e PGPASSWORD=$CLUSTER_PASS $LOCAL_PG psql -h $CLUSTER_HOST -p $CLUSTER_PORT -U $CLUSTER_USER -d DIDI << 'EOF'
|
||||
-- Create kong_db if not exists
|
||||
SELECT 'CREATE DATABASE kong_db OWNER kong'
|
||||
WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = 'kong_db')\gexec
|
||||
|
||||
-- Create keycloak_db if not exists
|
||||
SELECT 'CREATE DATABASE keycloak_db OWNER keycloak'
|
||||
WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = 'keycloak_db')\gexec
|
||||
|
||||
\l kong_db keycloak_db
|
||||
EOF
|
||||
echo -e "${GREEN}✓ Databases created${NC}"
|
||||
|
||||
# Step 4: Restore to cluster
|
||||
echo -e "${YELLOW}[4/6] Restoring databases to cluster...${NC}"
|
||||
|
||||
# Copy dumps to container
|
||||
docker cp /tmp/db-migration/kong_db.dump $LOCAL_PG:/tmp/
|
||||
docker cp /tmp/db-migration/keycloak_db.dump $LOCAL_PG:/tmp/
|
||||
|
||||
# Restore kong_db
|
||||
echo " - Restoring kong_db..."
|
||||
docker exec -e PGPASSWORD=$CLUSTER_PASS $LOCAL_PG pg_restore -h $CLUSTER_HOST -p $CLUSTER_PORT -U $CLUSTER_USER -d kong_db --no-owner --no-acl --clean --if-exists /tmp/kong_db.dump 2>/dev/null || true
|
||||
|
||||
# Restore keycloak_db
|
||||
echo " - Restoring keycloak_db..."
|
||||
docker exec -e PGPASSWORD=$CLUSTER_PASS $LOCAL_PG pg_restore -h $CLUSTER_HOST -p $CLUSTER_PORT -U $CLUSTER_USER -d keycloak_db --no-owner --no-acl --clean --if-exists /tmp/keycloak_db.dump 2>/dev/null || true
|
||||
|
||||
echo -e "${GREEN}✓ Databases restored${NC}"
|
||||
|
||||
# Step 5: Grant permissions
|
||||
echo -e "${YELLOW}[5/6] Granting permissions...${NC}"
|
||||
docker exec -e PGPASSWORD=$CLUSTER_PASS $LOCAL_PG psql -h $CLUSTER_HOST -p $CLUSTER_PORT -U $CLUSTER_USER -d kong_db -c "GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO kong; GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO kong;"
|
||||
docker exec -e PGPASSWORD=$CLUSTER_PASS $LOCAL_PG psql -h $CLUSTER_HOST -p $CLUSTER_PORT -U $CLUSTER_USER -d keycloak_db -c "GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO keycloak; GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO keycloak;"
|
||||
echo -e "${GREEN}✓ Permissions granted${NC}"
|
||||
|
||||
# Step 6: Verify
|
||||
echo -e "${YELLOW}[6/6] Verifying migration...${NC}"
|
||||
echo "Kong tables:"
|
||||
docker exec -e PGPASSWORD=$CLUSTER_PASS $LOCAL_PG psql -h $CLUSTER_HOST -p $CLUSTER_PORT -U $CLUSTER_USER -d kong_db -c "SELECT count(*) as tables FROM information_schema.tables WHERE table_schema = 'public';"
|
||||
echo "Keycloak tables:"
|
||||
docker exec -e PGPASSWORD=$CLUSTER_PASS $LOCAL_PG psql -h $CLUSTER_HOST -p $CLUSTER_PORT -U $CLUSTER_USER -d keycloak_db -c "SELECT count(*) as tables FROM information_schema.tables WHERE table_schema = 'public';"
|
||||
|
||||
echo ""
|
||||
echo -e "${GREEN}=== Migration Complete ===${NC}"
|
||||
echo ""
|
||||
echo "Next steps:"
|
||||
echo " 1. Stop old containers: docker stop kong keycloak"
|
||||
echo " 2. Remove old containers: docker rm kong keycloak"
|
||||
echo " 3. Start new services: cd /home/admin365/didi_mono/backend/production && docker compose up -d"
|
||||
echo ""
|
||||
Loading…
Add table
Add a link
Reference in a new issue