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) 방법은 solutoin입니다.

관련 문제