2013-01-05 66 views
12

如何使用當前日期時間的默認日期時間值更改流利遷移中的列?流利的遷移者。如何添加日期時間列作爲當前日期的默認值?

所以我需要水木清華這樣的:

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具有所有五個SystemMethods實現。這使得你的遷移可移植性降低,因爲它不再是生成的標準sql,並且其他數據庫不支持某些SystemMethods(例如,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)方法是solutoin。

相關問題