A .NET library for deploying and versioning SQL database changes across multiple database systems.
DbUp is a .NET library that automates the deployment of SQL database changes. It solves the problem of managing database schema versions by tracking executed SQL scripts and applying only the necessary updates to keep databases synchronized with application code. This ensures consistent and reliable database migrations across development, testing, and production environments.
.NET developers and DevOps engineers who need a lightweight, code-integrated solution for managing database migrations in SQL Server, PostgreSQL, MySQL, and other supported databases.
Developers choose DbUp for its simplicity, minimal configuration, and seamless integration into .NET applications. Unlike heavier migration frameworks, it focuses solely on script execution and tracking, offering a reliable and straightforward approach to database versioning.
DbUp is a .NET library that helps you to deploy changes to SQL Server databases. It tracks which SQL scripts have been run already, and runs the change scripts that are needed to get your database up to date.
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 SQL Server, MySQL, PostgreSQL, SQLite, Oracle, Firebird, and Redshift through dedicated NuGet packages, as shown in the detailed status table, ensuring broad support.
Designed for simple integration into .NET apps, build scripts, or CI/CD pipelines with a code-first approach, reducing setup overhead.
Maintains a journal table to record executed SQL scripts, preventing duplicate runs and ensuring consistent database states across deployments.
Community projects like DbUpX offer enhancements such as content hashing, script ordering, and Liquibase changelog support, though support varies.
DbUp lacks automatic rollback capabilities for failed migrations; handling errors requires manual intervention or custom logic, which can be risky in production.
Advanced features like hashing or Liquibase support rely on community-maintained extensions, which may have inconsistent updates or documentation, as noted in the README.
Basic script ordering and dependency management are not natively supported; complex scenarios require extensions or custom code, adding complexity.