Punya database PostgreSQL di VPS atau managed service lama dan ingin pindah ke serverless PostgreSQL? Artikel ini panduan lengkapnya — dari persiapan, migrasi, sampai optimasi production.
Kenapa harus migrasi ke serverless?
- Bayar sesuai pemakaian — Database idle = ga bayar
- Auto-scaling — Ga perlu lagi manually upgrade server
- Branching instan — Database branching dalam milidetik
- Maintenance gratis — Ga perlu lagi update PostgreSQL manual
Persiapan Sebelum Migrasi
1. Audit Database Kamu
Sebelum migrasi, pastikan:
# Cek versi PostgreSQL yang dipakai
SELECT version();
# Cek extensions yang aktif
SELECT * FROM pg_extension;
# Cek ukuran database
SELECT pg_database_size(current_database());
Yang perlu diperhatikan:
- Neon support PostgreSQL 15+ — kalau masih pakai versi lama, upgrade dulu
- Cek extension compatibility — beberapa extension mungkin ga support di serverless
- Hitung ukuran data — Neon free tier punya limit 512MB
2. Backup Database
Jangan pernah migrasi tanpa backup!
# Backup lokal
pg_dump -h localhost -U username -d dbname -Fc -o backup.dump
# Atau backup ke file
pg_dump -h localhost -U username -d dbname > backup.sql
3. Siapkan Connection Pooling
Serverless PostgreSQL punya connection limit. Kamu butuh connection pooling:
# Di Helipod, gunakan connection string dengan pooler
DATABASE_URL=postgresql://user:pass@host:5432/dbname?pgbouncer=true
Tips:
- Gunakan PgBouncer atau built-in pooler dari Neon
- Set
pool_sizedi ORM kamu (Prisma, Sequelize, dll) - Implementasi connection timeout dan retry logic
Langkah Migrasi ke Neon + Helipod
Langkah 1: Buat Neon Project
- Login ke Neon Console
- Klik Create Project
- Pilih region yang paling dekat dengan server kamu
- Catat connection string yang diberikan
Langkah 2: Connect Neon ke Helipod
- Buka Settings → Integrations di Helipod
- Connect akun Neon kamu
- Pilih project yang baru dibuat
Langkah 3: Migrate Data
Opsi A: pg_dump/pg_restore (Recommended)
# Export dari database lama
pg_dump -h old-host -U user -d dbname > migration.sql
# Import ke Neon
psql "postgresql://user:[email protected]/dbname" < migration.sql
Opsi B: Logical Replication (Zero-Downtime)
-- Di database lama
CREATE PUBLICATION my Publication FOR ALL TABLES;
-- Di Neon (via Helipod terminal)
CREATE SUBSCRIPTION my_subscription
CONNECTION 'postgresql://user:pass@old-host/dbname'
PUBLICATION my_publication;
Langkah 4: Update Application
Update connection string di aplikasi kamu:
# Lama
DATABASE_URL=postgresql://user:pass@old-host:5432/dbname
# Baru (via Helipod)
DATABASE_URL=postgresql://user:[email protected]/dbname
Langkah 5: Test dan Deploy
- Test semua fitur aplikasi
- Jalankan load test
- Monitor query performance
- Deploy ke production
Optimasi Setelah Migrasi
Connection Pooling
# Prisma example
DATABASE_URL="postgresql://user:pass@host/dbname?connection_limit=20&pool_timeout=20"
# Sequelize example
dialectOptions: {
pool: {
max: 20,
min: 5,
acquire: 30000,
idle: 10000
}
}
Query Optimization
-- Cek slow queries
SELECT query, mean_exec_time, calls
FROM pg_stat_statements
ORDER BY mean_exec_time DESC
LIMIT 10;
-- Tambah index untuk query yang sering dipakai
CREATE INDEX CONCURRENTLY idx_users_email ON users(email);
Monitoring
# Helipod metrics
- Connection count
- Query latency
- Storage usage
- Branch count
Troubleshooting
Masalah: Connection Timeout
# Solusi: Tambahkan timeout di connection string
DATABASE_URL="postgresql://...?connect_timeout=10&statement_timeout=30000"
Masalah: Cold Start Lambda
# Solusi: Gunakan connection pooling
# Neon punya built-in pooler di port 5432
DATABASE_URL="postgresql://[email protected]/dbname"
Masalah: Extension Tidak Support
# Cek extension yang support di Neon
SELECT * FROM pg_available_extensions
WHERE name IN ('pg_trgm', 'uuid-ossp', 'pgcrypto');
Checklist Migrasi
- Backup database lama
- Buat Neon project
- Connect Neon ke Helipod
- Migrate data (pg_dump atau replication)
- Update connection string
- Test semua fitur
- Load test
- Monitor performance
- Deploy ke production
Kesimpulan
Migrasi ke serverless PostgreSQL di Helipod bukan hal yang rumit. Dengan persiapan yang tepat dan mengikuti langkah-langkah di atas, kamu bisa pindah ke Neon tanpa downtime dan tanpa ribet.
Yang kamu dapatkan:
- ✅ Database auto-scaling
- ✅ Branching instan
- ✅ Bayar sesuai pemakaian
- ✅ Zero maintenance
Butuh bantuan migrasi? Hubungi [email protected] — tim kami siap membantu.
Baca juga: Integrasi Neon Database di Helipod