Header menu logo Migrondi

From v1 and onwards Migrondi was built to be used as a library. This means that you can use Migrondi to run your own migrations from F# or C# code and even extend Migrondi functionality with your own storage providers.

Terminology

I try to be consistent with the terminology used in the library, in case you find something out of place please let me know.

URI Handling

Given that Migrondi.Core is designed to be used as a library, it's important to remark that internally all of the paths are expected to be URIs as that allows to work with both the local filesystem and URLs in case that's required by a remote file system of some kind implemented by you.

With that in mind I'd like yo remind you that

The first one is a file, the second one is a directory. and the same happens for relative URIs

This is important for the built-in file system service factory that requires both the projectRootUri and the migrationsRootUri to be directories.

Public API Guidelines

The public API is designed to be as simple as possible, and to be used as a library, so it's important to remark that the public API should not contain any Language Specific Type (e.g. in the case of F# it should not contain FSharpList<'T> or FSharpOption<'T>) in any of it's signatures. while this might make it clunky to work with in F# it makes it easier to use in C# and VB.

Usage

First, get it from NuGet

dotnet add package Migrondi.Core

The main entry point for the library is the IMigrondi interface, created via the MigrondiFactory.

open Migrondi.Core

let config = MigrondiConfig.Default
let migrondi = Migrondi.MigrondiFactory(config, ".")

The service provides functionality to run migrations and related operations:

For more detailed information, check out:

val config: obj
val migrondi: obj

Type something to start searching.