2017-04-12 4 views
0

최근에 내 클래스의 일부 속성 (알림)을 변경했으며 평소와 같이 변경 사항을 마이그레이션했습니다. update-database 명령을 실행하고 'xxx.dbo.notifications'테이블이 존재하지 않는다는 오류가 발생했습니다.MySql 데이터베이스 용 update-database를 실행할 때 오류 발생 : 'xxx'테이블이 존재하지 않습니다.

테이블이 여전히 존재하므로 왜이 오류가 발생합니까?

편집 : 마이그레이션 코드

public override void Up() 
    { 
     DropForeignKey("dbo.Notifications", "PaymentId", "dbo.Payments"); 
     DropIndex("dbo.Notifications", new[] { "PaymentId" }); 
     AddColumn("dbo.Notifications", "ProductOptionId", c => c.Int()); 
     AlterColumn("dbo.Notifications", "PaymentId", c => c.Int()); 
     CreateIndex("dbo.Notifications", "PaymentId"); 
     CreateIndex("dbo.Notifications", "ProductOptionId"); 
     AddForeignKey("dbo.Notifications", "ProductOptionId", "dbo.ProductOptions", "Id"); 
     AddForeignKey("dbo.Notifications", "PaymentId", "dbo.Payments", "Id"); 
    } 

    public override void Down() 
    { 
     DropForeignKey("dbo.Notifications", "PaymentId", "dbo.Payments"); 
     DropForeignKey("dbo.Notifications", "ProductOptionId", "dbo.ProductOptions"); 
     DropIndex("dbo.Notifications", new[] { "ProductOptionId" }); 
     DropIndex("dbo.Notifications", new[] { "PaymentId" }); 
     AlterColumn("dbo.Notifications", "PaymentId", c => c.Int(nullable: false)); 
     DropColumn("dbo.Notifications", "ProductOptionId"); 
     CreateIndex("dbo.Notifications", "PaymentId"); 
     AddForeignKey("dbo.Notifications", "PaymentId", "dbo.Payments", "Id", cascadeDelete: true); 
    } 

편집 : 오류가 발생하기 전에 변경 사항을 복귀. 모델에 ProductOptionId 속성을 추가하고 마이그레이션을 추가하며 데이터베이스를 성공적으로 업데이트했습니다.

PaymentId 속성을 null 가능으로 변경하면 문제가있는 것 같습니다.

의미가 있습니까?

+1

이로 마이그레이션 한 동일한 데이터베이스에 심판 있는지 확인 마이그레이션 후 데이터베이스에 생성되어 있는지 확인이 보인다 MS SQL 서버. – Shadow

+0

@Shadow 왜 그렇게 생각하니? –

+0

'xxx.dbo.notifications' - MySQL에서는'xxx.notifications' 테이블이나'xxx.dbo' 테이블을 가질 수 있지만 경로에 3 개의 요소를 가질 수는 없습니다. 테이블은 데이터베이스 (스키마)에만 연결됩니다. – Shadow

답변

0

1 그 표가
2 컨텍스트 당신은 MySQL을 같이하지 않는

+0

테이블이 이미 존재했습니다. 방금 일부 속성을 변경하고 새 속성을 추가했습니다. 나는 또한 단지 하나의 맥락으로 일하고있다. –

+0

속성을 어떻게 추가 했습니까? 귀하의 모델 클래스에서 귀하가 마이 그 레이션했거나 데이터베이스 관리 에서 직접 만든 후 응용 프로그램을 실행하기 전에 컨텍스트 연결 문자열이 동적으로 변경되지 않았 음을 의미합니다. –

+0

내 모델 클래스에서 속성을 추가하고 만든 후에 이주. 나는 결코 데이터베이스 관리에서 손대지 않으므로 아무런 문제가 발생하지 않습니다. –