流利的移民。如何使用默认值作为当前日期添加datetime列?

时间:2013-01-05 12:57:18

标签: fluent-migrator

如何使用当前日期时间的默认日期时间值更改流畅迁移中的列?

所以我需要像这样的人:

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

仅适用于流畅的迁移。感谢。

2 个答案:

答案 0 :(得分:11)

看作答案实际上并不包含任何代码:

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

WithDefault(SystemMethods)方法是solutoin。

答案 1 :(得分:6)

您可能已经找到了SystemMethods on the wiki的文档。我刚刚更新了它,以便它反映了最新版本的FluentMigrator。

只是想指出这些是特定于数据库的,只有Sql Server实现了所有五个SystemMethods。这使得您的迁移不再具有可移植性,因为它不再是生成的标准sql,并且其他数据库不支持某些SystemMethod(例如,在MySql中似乎不可能使用CurrentUser)。

如果您发现需要其他人,请在FluentMigrator的Github网站上将其记录为问题,我们会尝试将其添加进来。