Migrate from Google AlloyDB to Xata

Learn how to migrate your Google AlloyDB PostgreSQL database to Xata using xata clone. Step-by-step instructions for configuring the migration.

Prerequisites

  • Google AlloyDB PostgreSQL cluster
  • Access to Google Cloud Console
  • Xata account and project setup
  • Network access to your AlloyDB cluster

Install and Configure the Xata CLI

Install the Xata CLI:

curl -fsSL https://xata.io/install.sh | bash

Authenticate with your Xata account:

xata auth login

Network Configuration

Option 1: Public IP (Less Secure)

If your AlloyDB cluster has a public IP:

  1. Authorize Your IP:
    • Go to your AlloyDB cluster → "Connections" → "Networking"
    • Add your IP address to "Authorized networks"
    • Or temporarily add 0.0.0.0/0 for migration (remove after)

For better security, use private IP:

  1. Enable Private IP:

    • Go to your AlloyDB cluster → "Connections" → "Networking"
    • Enable "Private IP"
    • Configure VPC peering if needed
  2. Run Migration from GCP:

    • Use Cloud Run, Compute Engine, or Cloud Functions
    • Ensure the service is in the same VPC as your AlloyDB cluster

Option 3: AlloyDB Auth Proxy

Use AlloyDB Auth Proxy for secure connections:

# Install AlloyDB Auth Proxy
curl -o alloydb-auth-proxy https://storage.googleapis.com/alloydb-auth-proxy/v1.0.0/alloydb-auth-proxy.linux.amd64
chmod +x alloydb-auth-proxy

# Start the proxy
./alloydb-auth-proxy --instances=your-project:your-region:your-cluster

Get Connection String

Connection String Format

postgresql://your_username:your_password@your-alloydb-ip:5432/your_database?sslmode=require

Initialize Xata Project

Set up your Xata project configuration:

xata init

Configure the Migration

Set up your clone configuration with optional anonymization:

# Set your source URL
export XATA_CLI_SOURCE_POSTGRES_URL="postgresql://your_username:your_password@your-alloydb-ip:5432/your_database?sslmode=require"

# Configure anonymization rules
xata clone config --source-url $XATA_CLI_SOURCE_POSTGRES_URL --mode prompt

Start the Migration

Begin the data transfer:

# Start the migration and configure anonymization rules
xata clone start --source-url $XATA_CLI_SOURCE_POSTGRES_URL

Monitor Progress

Check the migration status:

xata clone status

Verification

After migration, verify your data:

  1. Connect to Xata Branch:

    psql `xata branch url`
  2. Check Data Integrity:

    -- Compare row counts
    SELECT COUNT(*) FROM your_table;
    
    -- Check sample data
    SELECT * FROM your_table LIMIT 10;
  3. Test Relationships: Verify foreign key relationships work correctly

Next Steps