Ich sah mich am Ende meiner Update-Database -TargetMigration MigrationName
Anweisungen die SQL-Anweisungen, die mit dem Schlüsselwort -Verbose
ausgeführt wurden, um dies zu lösen.
Ich entfernte alle Fremd-und Primärschlüssel aus jeder Tabelle, dann fügte sie wieder mit den richtigen Namen.
Wo entity-framework
versuchte, dies zu tun:
DropForeignKey("Intranet.AspNetUserRoles", "RoleId", "Intranet.AspNetRoles");
DropIndex("Intranet.AspNetUserRoles", new[] { "UserId" });
DropPrimaryKey("Intranet.AspNetRoles");
, die zu diesen SQL
Aussagen übersetzt:
IF object_id(N'[Intranet].[FK_Intranet.AspNetUserRoles_Intranet.AspNetRoles_RoleId]', N'F') IS NOT NULL
ALTER TABLE [Intranet].[AspNetUserRoles] DROP CONSTRAINT [FK_Intranet.AspNetUserRoles_Intranet.AspNetRoles_RoleId]
IF EXISTS (SELECT name FROM sys.indexes WHERE name = N'IX_UserId' AND object_id = object_id(N'[Intranet].[AspNetUserRoles]', N'U'))
DROP INDEX [IX_UserId] ON [Intranet].[AspNetUserRoles]
ALTER TABLE [Intranet].[AspNetRoles] DROP CONSTRAINT [PK_Intranet.AspNetRoles]
Ich habe dies:
IF object_id(N'[Intranet].[FK_dbo.AspNetUserRoles_dbo.AspNetRoles_RoleId]', N'F') IS NOT NULL
ALTER TABLE[Intranet].[AspNetUserRoles] DROP CONSTRAINT[FK_dbo.AspNetUserRoles_dbo.AspNetRoles_RoleId]
IF EXISTS (SELECT name FROM sys.indexes WHERE name = N'IX_UserId' AND object_id = object_id(N'[Intranet].[AspNetUserRoles]', N'U'))
DROP INDEX[IX_UserId] ON[Intranet].[AspNetUserRoles]
ALTER TABLE[Intranet].[AspNetRoles] DROP CONSTRAINT[PK_dbo.AspNetRoles]
Also, um ein einzelnes zu ändern Beschränkungsname, den Sie in Ihrer Migration damit enden würden:
Sql("IF object_id(N'[Intranet].[FK_dbo.AspNetUserRoles_dbo.AspNetRoles_RoleId]', N'F') IS NOT NULL \r\n" +
"ALTER TABLE[Intranet].[AspNetUserRoles] DROP CONSTRAINT[FK_dbo.AspNetUserRoles_dbo.AspNetRoles_RoleId]\r\n" +
"IF EXISTS (SELECT name FROM sys.indexes WHERE name = N'IX_UserId' AND object_id = object_id(N'[Intranet].[AspNetUserRoles]', N'U')) \r\n" +
"DROP INDEX[IX_UserId] ON[Intranet].[AspNetUserRoles] \r\n" +
"ALTER TABLE[Intranet].[AspNetRoles] DROP CONSTRAINT[PK_dbo.AspNetRoles]");
AddPrimaryKey("Intranet.AspNetUserRoles", "Id");
CreateIndex("Intranet.AspNetUserRoles", "UserId");
AddForeignKey("Intranet.AspNetUserRoles", "RoleId", "Intranet.AspNetRoles", "Id", cascadeDelete: true);
Wo "Intranet" Ihr neues Schema Name ist "dbo" name das alte Schema ist "Id" ist der Spaltenname "AspNetUserRoles" mit dem Fremdschlüssel der Tabelle ist, und "AspNetRoles" ist Ihr Tisch mit dem Primärschlüssel (den Sie zuerst ändern wollten).
Um die Migrationsmethode Down()
zu kümmern, kehren Sie einfach die Schemanamen um.
Hier ist meine neue SchemaChange Migration:
public override void Up()
{
MoveTable(name: "dbo.AspNetRoles", newSchema: "Intranet");
MoveTable(name: "dbo.AspNetUserRoles", newSchema: "Intranet");
MoveTable(name: "dbo.AspNetUsers", newSchema: "Intranet");
MoveTable(name: "dbo.AspNetUserClaims", newSchema: "Intranet");
MoveTable(name: "dbo.AspNetUserLogins", newSchema: "Intranet");
Sql("IF object_id(N'[Intranet].[FK_dbo.AspNetUserRoles_dbo.AspNetRoles_RoleId]', N'F') IS NOT NULL \r\n" +
"ALTER TABLE[Intranet].[AspNetUserRoles] DROP CONSTRAINT[FK_dbo.AspNetUserRoles_dbo.AspNetRoles_RoleId]\r\n" +
"IF object_id(N'[Intranet].[FK_dbo.AspNetUserClaims_dbo.AspNetUsers_UserId]', N'F') IS NOT NULL \r\n" +
"ALTER TABLE[Intranet].[AspNetUserClaims] DROP CONSTRAINT[FK_dbo.AspNetUserClaims_dbo.AspNetUsers_UserId] \r\n" +
"IF object_id(N'[Intranet].[FK_dbo.AspNetUserLogins_dbo.AspNetUsers_UserId]', N'F') IS NOT NULL \r\n" +
"ALTER TABLE[Intranet].[AspNetUserLogins] DROP CONSTRAINT[FK_dbo.AspNetUserLogins_dbo.AspNetUsers_UserId] \r\n" +
"IF object_id(N'[Intranet].[FK_dbo.AspNetUserRoles_dbo.AspNetUsers_UserId]', N'F') IS NOT NULL \r\n" +
"ALTER TABLE[Intranet].[AspNetUserRoles] DROP CONSTRAINT[FK_dbo.AspNetUserRoles_dbo.AspNetUsers_UserId] \r\n" +
"IF EXISTS (SELECT name FROM sys.indexes WHERE name = N'IX_UserId' AND object_id = object_id(N'[Intranet].[AspNetUserRoles]', N'U')) \r\n" +
"DROP INDEX[IX_UserId] ON[Intranet].[AspNetUserRoles] \r\n" +
"IF EXISTS (SELECT name FROM sys.indexes WHERE name = N'IX_RoleId' AND object_id = object_id(N'[Intranet].[AspNetUserRoles]', N'U')) \r\n" +
"DROP INDEX[IX_RoleId] ON[Intranet].[AspNetUserRoles] \r\n" +
"IF EXISTS (SELECT name FROM sys.indexes WHERE name = N'IX_UserId' AND object_id = object_id(N'[Intranet].[AspNetUserClaims]', N'U')) \r\n" +
"DROP INDEX[IX_UserId] ON[Intranet].[AspNetUserClaims] \r\n" +
"IF EXISTS (SELECT name FROM sys.indexes WHERE name = N'IX_UserId' AND object_id = object_id(N'[Intranet].[AspNetUserLogins]', N'U')) \r\n" +
"DROP INDEX[IX_UserId] ON[Intranet].[AspNetUserLogins]\r\n" +
"ALTER TABLE[Intranet].[AspNetRoles] DROP CONSTRAINT[PK_dbo.AspNetRoles]\r\n" +
"ALTER TABLE[Intranet].[AspNetUserRoles] DROP CONSTRAINT[PK_dbo.AspNetUserRoles]\r\n" +
"ALTER TABLE[Intranet].[AspNetUsers] DROP CONSTRAINT[PK_dbo.AspNetUsers]\r\n" +
"ALTER TABLE[Intranet].[AspNetUserLogins] DROP CONSTRAINT[PK_dbo.AspNetUserLogins]\r\n" +
"ALTER TABLE[Intranet].[AspNetUserClaims] DROP CONSTRAINT[PK_dbo.AspNetUserClaims]");
AddPrimaryKey("Intranet.AspNetRoles", "Id");
AddPrimaryKey("Intranet.AspNetUserRoles", new[] { "UserId", "RoleId" });
AddPrimaryKey("Intranet.AspNetUsers", "Id");
AddPrimaryKey("Intranet.AspNetUserLogins", new[] { "LoginProvider", "ProviderKey", "UserId" });
AddPrimaryKey("Intranet.AspNetUserClaims", "Id");
CreateIndex("Intranet.AspNetUserRoles", "UserId");
CreateIndex("Intranet.AspNetUserRoles", "RoleId");
CreateIndex("Intranet.AspNetUserClaims", "UserId");
CreateIndex("Intranet.AspNetUserLogins", "UserId");
AddForeignKey("Intranet.AspNetUserRoles", "RoleId", "Intranet.AspNetRoles", "Id", cascadeDelete: true);
AddForeignKey("Intranet.AspNetUserClaims", "UserId", "Intranet.AspNetUsers", "Id", cascadeDelete: true);
AddForeignKey("Intranet.AspNetUserLogins", "UserId", "Intranet.AspNetUsers", "Id", cascadeDelete: true);
AddForeignKey("Intranet.AspNetUserRoles", "UserId", "Intranet.AspNetUsers", "Id", cascadeDelete: true);
}
public override void Down()
{
MoveTable(name: "Intranet.AspNetUserLogins", newSchema: "dbo");
MoveTable(name: "Intranet.AspNetUserClaims", newSchema: "dbo");
MoveTable(name: "Intranet.AspNetUsers", newSchema: "dbo");
MoveTable(name: "Intranet.AspNetUserRoles", newSchema: "dbo");
MoveTable(name: "Intranet.AspNetRoles", newSchema: "dbo");
Sql("IF object_id(N'[dbo].[FK_Intranet.AspNetUserRoles_Intranet.AspNetRoles_RoleId]', N'F') IS NOT NULL \r\n" +
"ALTER TABLE[dbo].[AspNetUserRoles] DROP CONSTRAINT[FK_Intranet.AspNetUserRoles_Intranet.AspNetRoles_RoleId]\r\n" +
"IF object_id(N'[dbo].[FK_Intranet.AspNetUserClaims_Intranet.AspNetUsers_UserId]', N'F') IS NOT NULL \r\n" +
"ALTER TABLE[dbo].[AspNetUserClaims] DROP CONSTRAINT[FK_Intranet.AspNetUserClaims_Intranet.AspNetUsers_UserId] \r\n" +
"IF object_id(N'[dbo].[FK_Intranet.AspNetUserLogins_Intranet.AspNetUsers_UserId]', N'F') IS NOT NULL \r\n" +
"ALTER TABLE[dbo].[AspNetUserLogins] DROP CONSTRAINT[FK_Intranet.AspNetUserLogins_Intranet.AspNetUsers_UserId] \r\n" +
"IF object_id(N'[dbo].[FK_Intranet.AspNetUserRoles_Intranet.AspNetUsers_UserId]', N'F') IS NOT NULL \r\n" +
"ALTER TABLE[dbo].[AspNetUserRoles] DROP CONSTRAINT[FK_Intranet.AspNetUserRoles_Intranet.AspNetUsers_UserId] \r\n" +
"IF EXISTS (SELECT name FROM sys.indexes WHERE name = N'IX_UserId' AND object_id = object_id(N'[dbo].[AspNetUserRoles]', N'U')) \r\n" +
"DROP INDEX[IX_UserId] ON[dbo].[AspNetUserRoles] \r\n" +
"IF EXISTS (SELECT name FROM sys.indexes WHERE name = N'IX_RoleId' AND object_id = object_id(N'[dbo].[AspNetUserRoles]', N'U')) \r\n" +
"DROP INDEX[IX_RoleId] ON[dbo].[AspNetUserRoles] \r\n" +
"IF EXISTS (SELECT name FROM sys.indexes WHERE name = N'IX_UserId' AND object_id = object_id(N'[dbo].[AspNetUserClaims]', N'U')) \r\n" +
"DROP INDEX[IX_UserId] ON[dbo].[AspNetUserClaims] \r\n" +
"IF EXISTS (SELECT name FROM sys.indexes WHERE name = N'IX_UserId' AND object_id = object_id(N'[dbo].[AspNetUserLogins]', N'U')) \r\n" +
"DROP INDEX[IX_UserId] ON[dbo].[AspNetUserLogins]\r\n" +
"ALTER TABLE[dbo].[AspNetRoles] DROP CONSTRAINT[PK_Intranet.AspNetRoles]\r\n" +
"ALTER TABLE[dbo].[AspNetUserRoles] DROP CONSTRAINT[PK_Intranet.AspNetUserRoles]\r\n" +
"ALTER TABLE[dbo].[AspNetUsers] DROP CONSTRAINT[PK_Intranet.AspNetUsers]\r\n" +
"ALTER TABLE[dbo].[AspNetUserLogins] DROP CONSTRAINT[PK_Intranet.AspNetUserLogins]\r\n" +
"ALTER TABLE[dbo].[AspNetUserClaims] DROP CONSTRAINT[PK_Intranet.AspNetUserClaims]");
AddPrimaryKey("dbo.AspNetRoles", "Id");
AddPrimaryKey("dbo.AspNetUserRoles", new[] { "UserId", "RoleId" });
AddPrimaryKey("dbo.AspNetUsers", "Id");
AddPrimaryKey("dbo.AspNetUserLogins", new[] { "LoginProvider", "ProviderKey", "UserId" });
AddPrimaryKey("dbo.AspNetUserClaims", "Id");
CreateIndex("dbo.AspNetUserRoles", "UserId");
CreateIndex("dbo.AspNetUserRoles", "RoleId");
CreateIndex("dbo.AspNetUserClaims", "UserId");
CreateIndex("dbo.AspNetUserLogins", "UserId");
AddForeignKey("dbo.AspNetUserRoles", "RoleId", "dbo.AspNetRoles", "Id", cascadeDelete: true);
AddForeignKey("dbo.AspNetUserClaims", "UserId", "dbo.AspNetUsers", "Id", cascadeDelete: true);
AddForeignKey("dbo.AspNetUserLogins", "UserId", "dbo.AspNetUsers", "Id", cascadeDelete: true);
AddForeignKey("dbo.AspNetUserRoles", "UserId", "dbo.AspNetUsers", "Id", cascadeDelete: true);
}