Upgrade to Pro — share decks privately, control downloads, hide ads and more …

FluentMigratorでDBマイグレーション

thinkAmi
February 21, 2015

 FluentMigratorでDBマイグレーション

2015/2/21に開かれた、めとべや東京 #7 でのLTスライドです。

thinkAmi

February 21, 2015
Tweet

More Decks by thinkAmi

Other Decks in Programming

Transcript

  1. 自己紹介 • 長野県から来ました • アカウント – thinkAmi • Twitter •

    Hatena • GitHub • C#(WPF)とかMS AccessとかRubyとか
  2. 長野県のコミュニティ • NSEG (#nseg) – 長野県とコンピューターをテーマに毎月開催 • 本日、ギークラボ長野でOpenDataハッカソン中 • Google

    Developer Group 信州 • 3/14 AndroidWearイベント » IT勉強会スタンプラリー参加 • Azure しなの (3/28 Hokuriku.NETと合同勉強会) • JAWS-UG 長野支部 » 他のコミュニティ > https://github.com/nseg- jp/w/wiki/NSEG以外の長野のIT勉強会
  3. 本題 • データベースの管理にて – 最初のうち • CUIでDDLやDMLを実行 • GUIでポチポチ –

    次第に忘れ去られ... • どの順番でどのDDLやDMLを実行する? • 何でこんなスキーマにしたんだっけ? » ツライ – DBマイグレーションをしたい...
  4. Entity Framework • Code First Migrations – MS Accessで試したが使えず... •

    EFがOLEDB接続をサポートしていないため » http://stackoverflow.com/a/11197393
  5. 動作RDBMS • SQL Server • SQL Server Compact Edition •

    PostgreSQL • MySQL • Oracle • SQLite • Jet (MS Access, ACEも動作) » https://github.com/schambers/fluentmigrator /wiki/Fluent-Interface
  6. 実行方法 • コマンドライン • NAnt • MSBuild • Rake –

    Ruby + Albacore gem が必要 » https://github.com/schambers/fluentmigrator /wiki/Migration-Runners
  7. インストール • NuGetでインストール – 本体 • PM> Install-Package FluentMigrator –

    コマンドラインランナーを使う場合 • PM> Install-Package FluentMigrator.Tools
  8. マイグレーション(DML) • INSERT Insert.IntoTable("hoge") .Row(new { content = "added" });

    • UPDATE Update.Table("hoge") .Set(new { content = "updated" }) .Where(new { id = 1 });
  9. ランナーのオプション – assembly » 対象のマイグレーションが含まれるexe/dll – provider » 対象のRDBMS –

    connection (接続文字列) – task » Migration, Rollback(全件, 1件, 指定ver etc) – verbose » Trueでマイグレーションの詳細を表示
  10. クラウド(Paas)での実行 • Azure Websites – 管理画面(Kudu)のConsoleにて • Heroku – Third-Party

    Buildpacksでビルド • Monoでのビルド – friism/heroku-buildpack-mono – heroku/dotnet-buildpack (ASP.NET 5用?) – One-Off Dynos でHeroku Postgresへ実行 • heroku run bash 後
  11. 参考文献など • 参考文献 – FluentMigrator公式Wikiが一番参考になります • https://github.com/schambers/fluentmigrator/wiki • スライドまわり –

    プレゼンツール • Rabbit (Ruby製) – http://rabbit-shocker.org/ja/ – スライドテンプレート • 交差点の真ん中で様のパワーポイント用自作デザインテンプレート – http://sagittarius.dip.jp/toshi/template.php – フォント • フォントな様のやさしさゴシックボールド – http://www.fontna.com/blog/736/