몇 개의 엔터티와 해당 탐색 속성의 이름을 변경하고 EF 5에서 새 마이그레이션을 생성했습니다. EF 마이그레이션의 이름 변경과 마찬가지로 기본적으로 개체를 삭제하고 다시 만듭니다. 내가 원하는 것이 아니기 때문에 마이그레이션 파일을 처음부터 작성해야했습니다.
public override void Up()
{
DropForeignKey("dbo.ReportSectionGroups", "Report_Id", "dbo.Reports");
DropForeignKey("dbo.ReportSections", "Group_Id", "dbo.ReportSectionGroups");
DropForeignKey("dbo.Editables", "Section_Id", "dbo.ReportSections");
DropIndex("dbo.ReportSectionGroups", new[] { "Report_Id" });
DropIndex("dbo.ReportSections", new[] { "Group_Id" });
DropIndex("dbo.Editables", new[] { "Section_Id" });
RenameTable("dbo.ReportSections", "dbo.ReportPages");
RenameTable("dbo.ReportSectionGroups", "dbo.ReportSections");
RenameColumn("dbo.ReportPages", "Group_Id", "Section_Id");
AddForeignKey("dbo.ReportSections", "Report_Id", "dbo.Reports", "Id");
AddForeignKey("dbo.ReportPages", "Section_Id", "dbo.ReportSections", "Id");
AddForeignKey("dbo.Editables", "Page_Id", "dbo.ReportPages", "Id");
CreateIndex("dbo.ReportSections", "Report_Id");
CreateIndex("dbo.ReportPages", "Section_Id");
CreateIndex("dbo.Editables", "Page_Id");
}
public override void Down()
{
DropIndex("dbo.Editables", "Page_Id");
DropIndex("dbo.ReportPages", "Section_Id");
DropIndex("dbo.ReportSections", "Report_Id");
DropForeignKey("dbo.Editables", "Page_Id", "dbo.ReportPages");
DropForeignKey("dbo.ReportPages", "Section_Id", "dbo.ReportSections");
DropForeignKey("dbo.ReportSections", "Report_Id", "dbo.Reports");
RenameColumn("dbo.ReportPages", "Section_Id", "Group_Id");
RenameTable("dbo.ReportSections", "dbo.ReportSectionGroups");
RenameTable("dbo.ReportPages", "dbo.ReportSections");
CreateIndex("dbo.Editables", "Section_Id");
CreateIndex("dbo.ReportSections", "Group_Id");
CreateIndex("dbo.ReportSectionGroups", "Report_Id");
AddForeignKey("dbo.Editables", "Section_Id", "dbo.ReportSections", "Id");
AddForeignKey("dbo.ReportSections", "Group_Id", "dbo.ReportSectionGroups", "Id");
AddForeignKey("dbo.ReportSectionGroups", "Report_Id", "dbo.Reports", "Id");
}
내가 할 노력하고있어 모든 이름 바꾸기입니다 dbo.ReportSections
에 dbo.ReportPages
다음 dbo.ReportSectionGroups
에 dbo.ReportSections
. 그럼 난에 외래 키 컬럼의 이름을 바꿀 필요가 dbo.ReportPages
에서 Group_Id
에 Section_Id
.
테이블을 함께 연결하는 외래 키와 인덱스를 삭제하고 테이블과 외래 키 열의 이름을 바꾼 다음 인덱스와 외래 키를 다시 추가합니다. 이것이 작동 할 것이라고 생각했지만 SQL 오류가 발생합니다.
Msg 15248, 수준 11, 상태 1, 프로 시저 sp_rename, 줄 215 @objname 매개 변수가 모호하거나 요청 된 @objtype (COLUMN)이 잘못되었습니다. Msg 4902, 수준 16, 상태 1, 줄 10 "dbo.ReportSections"개체가 없거나 권한이 없기 때문에 찾을 수 없습니다.
나는 여기서 무엇이 잘못되었는지 쉽게 알 수 없습니다. 어떤 통찰력이라도 엄청나게 도움이 될 것입니다.