[Tools]DB Migration Tool:dbup

介紹DB Migration工具: DBUp

dbup

  • 用來更新資料庫的工具
  • 只能往前更新,不能往後回復更新

dbup-consolescripts

  • 用來新增一個年月日時分秒_檔名.sql的套件

建立一個Console專案

Console專案

透過NuGet新增dbup和dbup-consolescripts

1
2
install-package dbup
install-package dbup-consolescripts

加入System.Configuration參考

System.Configuration

新增連線字串

連線字串

修改Program.cs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
namespace TestSystem.Migration
{
using System;
using System.Configuration;
using System.Reflection;
using DbUp;

class Program
{
static int Main(string[] args)
{
var connectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ToString();

var upgrader =
DeployChanges.To
.SqlDatabase(connectionString)
.WithScriptsEmbeddedInAssembly(Assembly.GetExecutingAssembly())
.LogToConsole()
.Build();

var result = upgrader.PerformUpgrade();

if (!result.Successful)
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine(result.Error);
Console.ResetColor();
Console.ReadLine();
return -1;
}

Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("Success!");
Console.ResetColor();
Console.ReadLine();
return 0;
}
}
}

新增SQL檔案

  • 透過套件管理器主控台執行New-Migration 名稱, 即可新增一個年月日時分秒_名稱的sql檔案
    SQL檔案

按下F5執行資料庫更新

資料庫更新

資料庫更新紀錄

資料庫更新紀錄

好處

  • DB更新有歷程記錄
  • 快速建立新環境
  • 避免人為疏失
-------------The End-------------