Show / Hide Table of Contents

    The dotnet-fm tool

    Installation

    dotnet tool install -g FluentMigrator.DotNet.Cli
    

    Running

    You can run the tool with dotnet fm or dotnet-fm. Use the latter version if the former doesn't work due to a .NET Core CLI tool bug.

    Command structure

    dotnet-fm  -+- list -+- migrations   = List applied and pending migrations
                |        +- processors   = List all available processors
                +- migrate               = Apply all migrations
                |  +- up                 = Apply migrations up to given version (inclusive)
                |  +- down               = Apply migrations down to given version (exclusive)
                +- rollback              = Rollback the last migration applied
                |  +- all                = Rollback all migrations
                |  +- by                 = Rollback by <n> steps
                |  +- to                 = Rollback to given version
                +- validate --- versions = Validate order of applied migrations
    

    list processors

    Shows all available processor identifiers to be used by the -p or --processor command line switch.

    Connection related commands

    The following commands need a processor id and/or a connection:

    • dotnet-fm list migrations
    • dotnet-fm migrate
    • dotnet-fm rollback
    • dotnet-fm validate

    -c|--connection <CONNECTION_STRING>

    The connection string itself to the server and database you want to execute your migrations against.

    --no-connection

    Indicates that migrations will be generated without consulting a target database. Should only be used when generating an output file.

    -p|--processor <PROCESSOR_NAME>

    The kind of database you are migrating against. Available choices can be shown with list processors.

    -s|--processor-switches <PROCESSOR_SWITCHES>

    Database processor specific switches, e.g.:

    • Firebird: Force Quote=true
    • Oracle: QUOTEDIDENTIFIERS=TRUE

    --preview

    Only output the SQL generated by the migration - do not execute it. Default is false.

    -V|--verbose

    Show the SQL statements generated and execution time in the console. Default is false.

    --profile <PROFILE>

    The profile to run after executing migrations.

    --context <CONTEXT> (obsolete)

    Set ApplicationContext to the given string.

    --timeout <TIMEOUT_SEC>

    Overrides the default database command timeout of 30 seconds.

    -o|--output=<FILENAME>

    Output generated SQL to a file. Default is no output. A filename may be specified, otherwise [targetAssemblyName].sql is the default.

    -a|--assembly <ASSEMBLY_NAME>

    The assemblies containing the migrations you want to execute.

    -n|--namespace <NAMESPACE>

    The namespace contains the migrations you want to run. Default is all migrations found within the Target Assembly will be run.

    --nested

    Whether migrations in nested namespaces should be included. Used in conjunction with the namespace option.

    --start-version

    The specific version to start migrating from. Only used when NoConnection is true. Default is 0.

    --working-directory <WORKING_DIRECTORY>

    The directory to load SQL scripts specified by migrations from.

    -t|--tag

    Filters the migrations to be run by tag.

    -b|--allow-breaking-changes

    Allows execution of migrations marked as breaking changes.

    rollback and migrate specific parameters

    -m|--transaction-mode <MODE>

    Overrides the transaction behavior of migrations, so that all migrations to be executed will run in one transaction. Allowed values are:

    • Migration
    • Session

    rollback all

    Reverts all migrations.

    rollback by <steps>

    Reverts the last <steps> migrations.

    rollback to <version>

    Reverts all migrations down to (and excluding) <version>.

    migrate up

    Applies the found migrations.

    -t|--target <TARGET_VERSION>

    The specific version to migrate to (inclusive).

    migrate down

    Applies the found migrations.

    -t|--target <TARGET_VERSION>

    The specific version to revert to (exclusive).

    --strip:<true|false>

    Whether comments should be stripped from SQL text prior to executing migration on server. Default is true; false will become the default in 4.x.

    Examples

    List all available processors

    dotnet fm list processors
    

    List applied and pending migrations

    dotnet fm list migrations -p sqlite -c "Data Source=test.db" -a FluentMigrator.Example.Migrations.dll
    

    Apply all migrations

    dotnet fm migrate -p sqlite -c "Data Source=test.db" -a FluentMigrator.Example.Migrations.dll
    

    Apply migrations up to given version (inclusive)

    dotnet fm migrate -p sqlite -c "Data Source=test.db" -a FluentMigrator.Example.Migrations.dll up -t 20090906205342
    

    Apply migrations down to given version (exclusive)

    dotnet fm migrate -p sqlite -c "Data Source=test.db" -a FluentMigrator.Example.Migrations.dll down -t 20090906205342
    

    Rollback the last migration applied

    dotnet fm rollback -p sqlite -c "Data Source=test.db" -a FluentMigrator.Example.Migrations.dll
    

    Rollback to given version

    dotnet fm rollback -p sqlite -c "Data Source=test.db" -a FluentMigrator.Example.Migrations.dll to 20090906205342
    

    Rollback by <n> steps

    dotnet fm rollback -p sqlite -c "Data Source=test.db" -a FluentMigrator.Example.Migrations.dll by 1
    

    Rollback all migrations

    dotnet fm rollback -p sqlite -c "Data Source=test.db" -a FluentMigrator.Example.Migrations.dll all
    

    Validate order of applied migrations

    dotnet fm validate versions -p sqlite -c "Data Source=test.db" -a FluentMigrator.Example.Migrations.dll
    
    • Improve this Doc
    Back to top
    Copyright © 2018 Fluent Migrator Project
    Generated by DocFX
    Creative Commons License
    FluentMigrator Documentation by FluentMigrator Project is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.