2013-01-05 3 views
12

現在の日付時刻であるデフォルトの日付時刻値で流暢な移行の列を変更するにはどうすればよいですか?流暢な移行者。現在の日付としてデフォルト値を使用してdatetime列を追加する方法は?

だから私はこのようになめらか必要がありますだけ流暢な移行のための

ALTER TABLE database ADD column DATETIME DEFAULT GETDATE() NOT NULL;

。ありがとう。

+0

短い捜査の後に偉大な答え:拡張メソッドWithDefault(SystemMethods.CurrentDateTime)を使用する必要があります。SystemMethodsはCurrentDateTime、CurrentUTCDateTime、NewGuid、NewSequentialIdのいずれかになります。 – Seth

答えて

6

すでにSystemMethods on the wikiのドキュメントがあります。 FluentMigratorの最新バージョンが反映されるように更新しました。

これらはデータベース固有のものであり、Sql Serverだけには5つのSystemMethodが実装されていることを指摘しておきます。これにより、生成された標準SQLでなくなったSystemMethodのいくつかが他のデータベースでサポートされていないため、マイグレーションの移植性が低下します(CurrentUserはMySqlでは可能ではないようです)。

あなたが他のものの必要性は、その後FluentMigratorのGithubのサイト上の問題として、それをログインしてください、私たちがしようとすると、それを追加します

5

実際にはコードが含まれていない答えとして見て表示された場合:

Create.Table(nameof(Report)) 
     .WithColumn(nameof(Report.Id)).AsInt32().NotNullable().PrimaryKey().Identity() 
     .WithColumn(nameof(Report.CreatedAt)).AsDateTime().Nullable() 
              .WithDefault(SystemMethods.CurrentDateTime); 

WithDefault(SystemMethods)は、ソルトインである。

関連する問題