2013-01-05 14 views
12

Jak zmienić kolumnę w płynnej migracji z domyślną wartością daty, która jest bieżącą datą?Płynny migrator. Jak dodać kolumnę datetime z wartościami domyślnymi jako aktualną datą?

Więc muszę czymś tak:

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

tylko dla płynną migrację. Dzięki.

+0

Świetna odpowiedź po krótkim badaniu: należy użyć metody rozszerzającej WithDefault (SystemMethods.CurrentDateTime), gdzie SystemMethods może być jednym z: CurrentDateTime, CurrentUTCDateTime, NewGuid, NewSequentialId. – Seth

Odpowiedz

6

Prawdopodobnie znalazłeś już dokumentację dla SystemMethods on the wiki. Po prostu zaktualizowałem go tak, aby odzwierciedlał on najnowszą wersję FluentMigrator.

Chcemy tylko podkreślić, że są to dane specyficzne dla bazy danych i tylko Serwer Sql ma wszystkie pięć metod SystemMethod. To sprawia, że ​​migracja jest mniej przenośna, ponieważ nie jest już standardowym sql, który jest generowany, a niektóre metody SystemMethod nie są obsługiwane w innych bazach danych (na przykład w przypadku MySQL nie jest możliwe wykonanie usługi CurrentUser).

Jeśli widzisz potrzebę jakichkolwiek innych następnie zaloguj się jako problem na miejscu GitHub FluentMigrator i spróbujemy i dodać go w

5

Widząc jako odpowiedź w rzeczywistości nie zawiera żadnego kodu.

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

Metodą WithDefault(SystemMethods) jest solutoin.

Powiązane problemy