Skip to main content

FluentMigrator is a database migration framework for .NET written in C#. The basic idea is that you can create migrations which are simply classes that derive from the Migration base class and have a Migration attribute with a unique version number attached to them. Upon executing FluentMigrator, you tell it which version to migrate to and it will run all necessary migrations in order to bring your database up to that version. In addition to forward migration support, FluentMigrator also supports different ways to execute the migrations along with selective migrations called profiles and executing arbitrary SQL.

Total Downloads
25.7K
25,659
Published
Jan 21, 2026
9mo ago

Get Started

dotnet add package FluentMigrator.Analyzers --version 8.0.1

No framework information available.

README

FluentMigrator

FluentMigrator is a an open-source .NET library that allows you to manage and version database schema changes using a code-first approach. With FluentMigrator, you can define database migrations as code rather than maintaining SQL scripts or using other tools.

Some key features of FluentMigrator include:

  • Code-based Migrations: You define database migrations as C# or VB.NET classes, making it easier to version control and maintain your schema changes.
  • Fluent Interface: FluentMigrator provides a fluent interface for defining database objects like tables, columns, indexes, and constraints, making the code more readable and expressive.
  • Cross-platform: FluentMigrator supports multiple databases, including SQL Server, PostgreSQL, MySQL, Oracle, and SQLite.
  • Rollback Support: FluentMigrator allows you to roll back migrations, making it easier to undo changes or revert to a previous database state.
  • Extensibility: You can create your own custom migrations, conventions, and processors to extend FluentMigrator's functionality.

Getting Started

For a brief overview on getting started with FluentMigrator, please see the documentation links here:

Installation

You can install FluentMigrator via NuGet:

Install-Package FluentMigrator

Usage

FluentMigrator example migration and usage:

[Migration(202401011200)]
public class CreatePersonTable : Migration
{
    public override void Up()
    {
        Create.Table("People")
            .WithColumn("Id").AsGuid().PrimaryKey()
            .WithColumn("Name").AsString(100).NotNullable()
            .WithColumn("Email").AsString(200).Nullable();
    }

    public override void Down()
    {
        Delete.Table("People");
    }
}

For more detailed documentation and examples, please refer to [link to your comprehensive documentation].

Feedback and Contributing

We welcome your feedback, bug reports, and contributions to FluentMigrator.

  • To report a bug or request a feature, please open an issue on our GitHub repository.

If you'd like to contribute to the project, please follow our contributing guidelines.

License

FluentMigrator is released under the Apache license. See the LICENSE file for more details.

Downloads by Version

Similar & Alternative Packages

Hand-picked matching NuGet libraries based on tags & ecosystem

Depended On By

Find packages that declare this package as a dependency. NuGet does not provide a reverse-dependency endpoint, so candidates are checked on demand.

Adoption Assessment

A verified publisher signal is available. Assess fit from the package's supported frameworks, license and dependency graph rather than popularity alone.

No target framework metadata is available. Confirm compatibility in a representative project before standardising on this package.

Related Guides & Workflows

Learn how to evaluate, integrate, or audit this package in your .NET project.