A lightweight Go library for managing database schema migrations with version control.
Darwin is a database schema evolution library for Go that provides a simple, programmatic approach to managing database migrations. It helps developers version-control their database schemas and apply incremental changes safely across different environments.
Go developers building applications that require structured, version-controlled database schema changes, particularly those who prefer integrating migration logic directly into their codebase without external CLI tools.
Developers choose Darwin for its minimal, library-only design that offers full programmatic control within Go applications, supports multiple SQL databases through dialects, and emphasizes safe, single-statement migrations for easier debugging and failure isolation.
Database schema evolution library for Go
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Works with multiple SQL databases like MySQL and PostgreSQL through dialect interfaces, offering flexibility without locking into a specific backend.
Provides a library-only approach that integrates directly into Go applications, eliminating external dependencies and enabling programmatic control.
Encourages single-statement migrations to isolate failures, making debugging easier and ensuring consistent schema evolution, as emphasized in the FAQ.
Tracks applied migrations with version numbers to prevent duplicate execution, maintaining schema consistency across different environments.
Lacks a CLI tool, requiring all migration operations to be handled within Go code, which can complicate manual or automated workflows outside the application.
Does not include built-in downgrade migrations, forcing developers to implement rollback logic manually or rely on external strategies, as referenced in the FAQ.
Discourages multi-statement migrations, which can be cumbersome for complex schema changes that involve multiple interdependent operations.
darwin is an open-source alternative to the following products: