Entity Framework (6.1.1)에 마이그레이션을 설정했습니다.
Update-Database –TargetMigration: $InitialDatabase
하지만 내 코드에서이 작업을 수행 할 수있는 방법 : 나는 완전히 비어있는 데이터베이스를 재설정 패키지 관리자 콘솔에서 다음 명령을 실행할 수 있습니다 알아? 당신이 당신의 마이그레이션 ID를 모르는 경우
Entity Framework (6.1.1)에 마이그레이션을 설정했습니다.
Update-Database –TargetMigration: $InitialDatabase
하지만 내 코드에서이 작업을 수행 할 수있는 방법 : 나는 완전히 비어있는 데이터베이스를 재설정 패키지 관리자 콘솔에서 다음 명령을 실행할 수 있습니다 알아? 당신이 당신의 마이그레이션 ID를 모르는 경우
var configuration = new MyDbConfiguration();
configuration.TargetDatabase = new DbConnectionInfo(
"Server=MyServer;Database=MyDatabase;Trusted_Connection=True;",
"System.Data.SqlClient");
var migrator = new DbMigrator(configuration);
migrator.Update("201606030938116_InitialDatabase");
당신은 다만 할 수 있습니다
migrator.GetDatabaseMigrations().First();
나 :
당신의 DbConfiguration에서
migrator.GetLocalMigrations().First();
당신이 자동 낙하을 허용해야한다 :
public class MyDbConfiguration: DbMigrationsConfiguration<MyDbContext>
{
public MyDbConfiguration()
{
this.AutomaticMigrationsEnabled = true;
this.AutomaticMigrationDataLossAllowed = true;
}
}
@GTHvidsten에서3210
업데이트 :
대신 사용할 수있는 마이그레이션을 받고, 당신은이 명령을 사용해야합니다 : migrator.Update (DbMigrator.InitialDatabase를); 그러나 MyDbConfiguration의 ContextKey 속성을 Package Manager에서 만든 Configuration 개체에서 사용 된 ContextKey 속성과 일치하도록 설정해야합니다. 둘 다 내 데이터베이스가 비게됩니다.
이 작업을 수행 할 수 없습니다. 그것은 마이 그 레이션을 발견하지만'migrator.Update (migrator.GetLocalMigrations(). First()) '할 때 "데이터베이스에 SomeTable이라는 객체가 이미 있습니다."라는 오류가 발생합니다. 패키지 관리자를 통해 생성 된 원래의 Migration Configuration 객체는 'ContextKey'속성에 값을 설정했습니다. MyDbConfiguration에 같은 값을 설정하려고했습니다. 이로 인해 오류가 사라지지만'Update()'호출에서 아무 일도 일어나지 않습니다. 데이터베이스는 이전과 완전히 동일합니다. – GTHvidsten
좋아, 나는 그것이 작동하도록 생각한다. 사용 가능한 마이그레이션을 얻는 대신에'migrator.Update (DbMigrator.InitialDatabase);'명령을 사용해야합니다. 그러나 패키지 관리자가 생성 한 Configuration 객체에서 사용 된 것과 일치하도록'MyDbConfiguration'에'ContextKey' 속성을 설정해야합니다. 둘 다 내 데이터베이스가 비게됩니다. – GTHvidsten
좋은 소식) 답으로 표시하시오 –
이 요구 사항을 둘러싼 유스 케이스에 대해 조금 설명 할 수 있습니까? 추가 작업을 실행하기 위해 이전 시스템에 연결하려고합니까? 'DbContext.Database.Delete(); DbContext.Database.Initialize (true);'는 데이터베이스를 삭제하고 다시 만듭니다. 그러나 이것이 현재인지 여부는 불분명합니다. – Gusdor
@ Gusdor : 많은 양의 마이그레이션을 방지하기 위해 버전 별 릴리스 당 하나의 마이그레이션이 있습니다. 알파 테스트를 진행할 때 첫 번째 알파 출시 이후에 버전이 지정된 마이 그 레이션에 뭔가를 추가 할 수 있습니다. 다음 알파 버전 (또는 베타)을 릴리스 할 때 이미 적용된 버전이있는 마이 그 레이션에 대한 변경 사항이있을 수 있으므로 데이터베이스를 $ InitialDatabase로 재설정해야합니다. 그렇지 않으면 EF에서 이미 적용 되었기 때문에 마이그레이션이 적용되지 않습니다. 테이블과 마이 그 레이션간에 불일치가 있습니다. – GTHvidsten
@GTHvidsten 내 문제로 문제가 해결 되었습니까? –