Tern is an open-source PostgreSQL migration tool designed to manage database schema changes through SQL-based migrations. It allows developers to organize, apply, and reverse database modifications using sequentially numbered migration files. Each migration can contain SQL statements for both applying and rolling back changes, with execution handled through database transactions. The tool supports traditional SQL migrations alongside migrations implemented with Go functions. It also provides an optional workflow for managing database objects such as functions and views. Configuration supports environment variables, command-line arguments, and template-based variable interpolation. Tern can run as a standalone command-line application or be integrated into Go projects as a library. Built-in SSH tunneling supports connections to remote databases.
Features
- PostgreSQL Schema Migration Management
- SQL and Go Function Migrations
- Forward and Reverse Migration Execution
- Transactional Database Migration Processing
- SSH Tunnel Database Connectivity
- Template-Based Configuration and Variable Interpolation