DbFlow 0.4.0

dotnet add package DbFlow --version 0.4.0
                    
NuGet\Install-Package DbFlow -Version 0.4.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="DbFlow" Version="0.4.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="DbFlow" Version="0.4.0" />
                    
Directory.Packages.props
<PackageReference Include="DbFlow" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add DbFlow --version 0.4.0
                    
#r "nuget: DbFlow, 0.4.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package DbFlow@0.4.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=DbFlow&version=0.4.0
                    
Install as a Cake Addin
#tool nuget:?package=DbFlow&version=0.4.0
                    
Install as a Cake Tool

DbFlow

DbFlow is a tool with the ambition to help in all stages of developing, testing and releasing databases.

The current version of DbFlow can be used for

  • generate complete scripts for a database schema that can be used for improved version control
  • clone an existing database to a local copy that can be used for unit testing or other
  • (Experimental) Copy data from one database to another (resolving and copying dependant data as well)

NuGet: https://www.nuget.org/packages/DbFlow/ Repo: https://github.com/kullbom/dbflow

DbFlow supports

  • Microsoft Sql Server

Known bugs/limitation

  • Does not consider ANSI PADDING of individual columns
  • XML indexes is not yet fully supported

Planned features:

  • Improved support for copying data
  • Replace the need for DbUp
  • Generate documentation
  • Support for PostgreSql

Examples

To clone a database (F#):

open Microsoft.Data.SqlClient
open DbFlow
open DbFlow.SqlServer

let options = Options.Default

let logger _message = ()

let srcConnectionStr = ...
let dstConnectionStr = ...

let dbSchema = 
    use connection = new SqlConnection(srcConnectionStr)
    connection.Open()
    Execute.readSchema logger options connection

use connection = new SqlConnection(dstConnectionStr)
connection.Open()
Execute.clone logger options dbSchema connection 

To generate scripts from a database (F#):

open Microsoft.Data.SqlClient
open DbFlow
open DbFlow.SqlServer

let options = Options.Default

let logger _message = ()

let srcConnectionStr = ...
let dstDirectory = ...

let dbSchema = 
    use connection = new SqlConnection(srcConnectionStr)
    connection.Open()
    Execute.readSchema logger options connection

Execute.generateScriptFiles options dbSchema dstDirectory   

To clone a database (C#):

var logger = LoggerModule.fromFunc(s => { });
var options = OptionsModule.Default;

using var sourceConnection = new Microsoft.Data.SqlClient.SqlConnection(sourceConnectionString);
sourceConnection.Open();
var schema = Execute.readSchema(logger, options, sourceConnection);

var cloneDb = Execute.cloneToLocal(logger, options, schema);

To generate scripts from a database (C#):

var logger = LoggerModule.fromFunc(s => { });
var options = OptionsModule.Default;

using var sourceConnection = new Microsoft.Data.SqlClient.SqlConnection(sourceConnectionString);
sourceConnection.Open();
var schema = Execute.readSchema(logger, options, sourceConnection);

Execute.generateScriptFiles(options, schema, destinationDirectory);
Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.4.0 222 9/19/2025
0.3.0 160 8/31/2025
0.2.0-beta01 53 8/23/2025
0.1.0-beta01 49 8/23/2025
0.0.1-alpha07 85 8/22/2025
0.0.1-alpha06 89 8/22/2025
0.0.1-alpha05 118 8/19/2025
0.0.1-alpha04 111 8/19/2025
0.0.1-alpha03 124 8/11/2025
0.0.1-alpha02 116 8/10/2025
0.0.1-alpha01 116 8/10/2025