Gettings Started
Getting Started
Create a new Visual Studio library project for your migrations.Migration
[Migration(1)] public class CreateUserTable : Migration { public override void Up() { Create.Table("Users") .WithColumn("Id").AsInt32().NotNullable().PrimaryKey().Identity() .WithColumn("Name").AsString(255).NotNullable().WithDefaultValue("Anonymous"); } public override void Down() { Delete.Table("Users"); } }
Execute Migration
Find Migrate.exe file and run command from same directorymigrate.exe /conn "data source=(local);Trusted_Connection=yes;database=FluentMigrator_TestDB" --provider sqlserver2008 --assembly "../../../Guides.FluentMigrator/bin/Debug /Guides.FluentMigrator.dll" --task migrate --output -- outputFilename migrated.sqlI installed FluentMigrator using Nuget so i had to navigate to the "packages\FluentMigrator.x.x.x\tools" directory and run the above command from there.
I think this exe can also be found in the "Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Entity Framework Tools\NuGet Packages\EntityFramework.x.x.x\tools" directory.
Bat file to Execute Migration
Migrate Upcd C:\sandbox\Guides.FluentMigrator\packages\FluentMigrator.1.6.2\tools migrate.exe /conn "data source=(local);Trusted_Connection=yes;database=FluentMigrator_TestDB" --provider sqlserver2008 --assembly "../../../Guides.FluentMigrator/bin/Debug/Guides.FluentMigrator.dll" --task migrate:up --output -- outputFilename migrated.sql pause
Upgrade Database using SQL Scripts
create a separate folder in your project, name it like “Scripts” and put your SQL Script there.Then, create another migration class, name it “M0002_CreateSP_GetAllMember.cs” and paste the following code in that class file:
using FluentMigrator; namespace DatabaseMigration.Migrations { [Migration(2)] public class M0002_CreateSP_GetAllMember : Migration { public override void Up() { Execute.EmbeddedScript("CreateSP_GetAllMember.sql"); } public override void Down() { Execute.EmbeddedScript("DropSP_GetAllMember.sql"); } } }NOTE: Don’t forget to set the Build Action property of both SQL files as Embedded Resource.
my thanks to:
https://github.com/schambers/fluentmigrator/wiki
http://www.codeproject.com/Articles/1012802/Fluent-Migrator-for-Database-Migration