최근에 내 클래스의 일부 속성 (알림)을 변경했으며 평소와 같이 변경 사항을 마이그레이션했습니다. 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 가능으로 변경하면 문제가있는 것 같습니다.
의미가 있습니까?
이로 마이그레이션 한 동일한 데이터베이스에 심판 있는지 확인 마이그레이션 후 데이터베이스에 생성되어 있는지 확인이 보인다 MS SQL 서버. – Shadow
@Shadow 왜 그렇게 생각하니? –
'xxx.dbo.notifications' - MySQL에서는'xxx.notifications' 테이블이나'xxx.dbo' 테이블을 가질 수 있지만 경로에 3 개의 요소를 가질 수는 없습니다. 테이블은 데이터베이스 (스키마)에만 연결됩니다. – Shadow