v0.4.0
pgcopy Release Notes
v0.4.0 – High-Performance Mode + Web UI 🚀🖥️
Released: August 7, 2025
This is our biggest release yet. v0.4.0 brings a high‑performance mode powered by streaming PostgreSQL COPY, an all‑new Web UI dashboard, stronger foreign‑key resiliency, and a cleaner documentation set. It’s the fastest, safest, and most pleasant pgcopy to date.
✨ Highlights
🚀 High‑Performance Mode
- Streaming COPY pipeline:
--copy-pipestreams source→dest in binary mode for maximal throughput - In‑flight compression:
--compressreduces WAN bandwidth (requires--copy-pipe) - Minimal memory footprint, fewer round‑trips, perfect for high‑latency links
Example:
pgcopy copy \
--source "postgres://user:pass@source:5432/db" \
--dest "postgres://user:pass@dest:5432/db" \
--parallel 8 \
--copy-pipe \
--compress🖥️ Web UI Dashboard (Output: web)
- Real‑time status in your browser:
--output web - Auto‑start local dashboard with table progress, stats, and results
- Works alongside logging and stats collection
Example:
pgcopy copy \
--source "postgres://user:pass@src:5432/db" \
--dest "postgres://user:pass@dst:5432/db" \
--output web🔗 Foreign Key Resilience
- Idempotent FK restoration: hash/signature comparison to skip redundant re‑adds
- Smarter retries with capped exponential backoff for transient errors
- Better handling when constraints already exist
🚀 Usage Examples
High‑Performance Copy (WAN‑friendly):
pgcopy copy \
--source "postgres://user:pass@source:5432/db" \
--dest "postgres://user:pass@dest:5432/db" \
--parallel 16 \
--batch-size 10000 \
--copy-pipe \
--compressWeb Dashboard:
pgcopy copy \
--source "postgres://user:pass@source:5432/db" \
--dest "postgres://user:pass@dest:5432/db" \
--output webChangelog
Others
- 2561909: Change include and exclude parameters
- 6da2a21: Copy pipe and compress modes
- 02bc93b: Drop unused state_driven.go
- fb55f1f: Exclude CI pipeline matrix
- 0076e6c: Fix web mode to use opened port automatically
- d41c2d7: Global state and web view POC
- e397872: Global state usage improvement
- 2dce9e1: Group small tables into a single worker sequence
- c1002dd: Hash and compare FK definitions before re-adding
- e642808: Introduce cancellation context for copy command
- eb57ae7: Layers based refactoring
- 7a1e62c: Re-structure documentation
- c572e25: Refactor logging levels
- 90d6a43: Remove resume option as not planned
- 3516619: Retry and backoff FK re-creation
- d195d9f: Simplify source and dest parameters options
- af890cc: Streaming documentation update
- 79d930e: Update web monitoring page design