下面是C#(而不是MSBuild的,南特或控制檯亞軍),基於碎片#2做的一個例子:
static void Main(string[] args)
{
string connectionString = @"server=.\SQLEXPRESS;database=testdb;uid=sa2;pwd=Passw0rd";
Announcer announcer = new TextWriterAnnouncer(s => System.Diagnostics.Debug.WriteLine(s));
announcer.ShowSql = true;
Assembly assembly = Assembly.GetExecutingAssembly();
IRunnerContext migrationContext = new RunnerContext(announcer);
var options = new ProcessorOptions
{
PreviewOnly = false, // set to true to see the SQL
Timeout = 60
};
var factory = new SqlServer2008ProcessorFactory();
using (IMigrationProcessor processor = factory.Create(connectionString, announcer, options))
{
var runner = new MigrationRunner(assembly, migrationContext, processor);
runner.MigrateUp(true);
// Or go back down
//runner.MigrateDown(0);
}
}
[Migration(1)]
public class CreateUserTable : Migration
{
public override void Up()
{
Create.Table("person")
.WithColumn("Id").AsGuid().PrimaryKey()
.WithColumn("Name").AsString();
}
public override void Down()
{
Delete.Table("person");
}
}
你必須在C#中的煩惱做它用TaskExecutor
爲類僅用於控制檯應用程序(migrate.exe)。
我讀過它,但我仍然不明白它是如何工作的。如何執行遷移?我有一個現有的項目,我只想添加一些類到項目中,並運行THAT項目的遷移,而無需外部工具。流利Migrator可能嗎?像'FluentMigrator.Migrate(「數據庫路徑」,typeof(Migration024));',我將在'Program.Main()'中調用。 – Paya 2010-05-01 20:46:48