20

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

所以我需要这样的东西:

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

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

4

2 回答 2

18

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

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

WithDefault(SystemMethods)方法就是解决方案。

于 2016-03-18T17:27:53.180 回答
10

您可能已经在 wiki 上找到了 SystemMethods的文档。我刚刚对其进行了更新,以便它反映最新版本的 FluentMigrator。

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

如果您发现需要其他任何内容,请将其作为问题记录在 FluentMigrator 的 Github 站点上,我们将尝试添加它。

于 2013-01-06T14:17:13.263 回答