PostgreSQL Schema Migration Tool - A modern desktop application for managing PostgreSQL database schema migrations with visual diff comparison.
| Platform | File |
|---|---|
| macOS (Intel/Apple Silicon) | PGShift_x.x.x_x64.dmg |
| Windows x64 | PGShift_x.x.x_x64-setup.exe |
- 🔌 Multi-Connection Support: Connect to multiple source and target databases simultaneously
- 🔍 Visual Schema Comparison: Compare schemas between databases with detailed diff view
- 📦 Migration Generation: Automatically generate SQL migration scripts
- ⚡ Multi-Target Deployment: Apply migrations to multiple databases at once
- 🗄️ Database Browser: Explore tables, columns, indexes, and constraints
- 📚 Version History: Track and manage migration versions
- 🔀 Schema Merging: Merge multiple source schemas into a unified target
macOS:
- Download the
.dmgfile - Open the DMG and drag PGShift to Applications
- On first run, right-click and select "Open" to bypass Gatekeeper
Windows:
- Download the
.exeinstaller - Run the installer and follow the prompts
- Launch PGShift from Start Menu
- Open PGShift and go to Connections tab
- Enter your Source database credentials (desired schema state)
- Enter your Target database credentials (current production state)
- Click Test Connection to verify both connections
For advanced scenarios:
- Toggle to Multi Mode in the Connections page
- Add multiple source databases to merge their schemas
- Add multiple target databases for batch migration deployment
- Navigate to the Compare tab
- Click Compare Schemas (or Merge & Compare in multi-mode)
- Review the differences in the visual diff tree
- Click on any item to see detailed changes
- After comparison, enter a migration name (e.g.,
add_users_table) - Click Generate Migration
- Review the generated SQL in the preview panel
- Go to the Apply tab
- Select the migration path (auto-filled from generation)
- Review the warning about destructive operations
- Click Apply Migration
For multi-target deployment:
- Switch to Multi Target mode
- Click Apply to All to deploy to all connected targets
postgres://username:password@hostname:port/database_name
Examples:
postgres://postgres:secret@localhost:5432/myapp_devpostgres://admin:pass123@db.example.com:5432/production
The Browser tab provides a complete view of your database:
- Tables: View all tables with columns, types, and constraints
- Indexes: See all indexes and their configurations
- Enums: Browse custom PostgreSQL enum types
- Query Editor: Run custom SQL queries
Source DB (desired state) Target DB (current state)
│ │
└──────────┬───────────────────┘
│
Compare Schemas
│
Generate Migration
│
Review SQL Changes
│
Apply to Target(s)
- Node.js 18+
- Rust 1.70+
- pnpm
cd pgshift
pnpm install
pnpm tauri dev# macOS DMG
pnpm tauri build --bundles dmg
# Windows EXE (requires Windows or CI)
pnpm tauri build --bundles nsisThis project uses GitHub Actions for automated builds:
- Push a version tag:
git tag v0.2.0 && git push --tags - GitHub Actions builds both macOS DMG and Windows EXE
- Artifacts are uploaded to GitHub Releases automatically
See .github/workflows/release.yml for configuration.
See CHANGELOG.md for version history.
Contributions are welcome! Please read our contributing guidelines before submitting PRs.
MIT License - see LICENSE for details.