[解決済み] データベースに 'AspNetRoles' という名前のオブジェクトがすでに存在します。
2022-02-07 09:04:34
質問
しばらく前に、Identity 1.0 バージョンで ASP.NET MVC 5 ウェブサイトを作成し、このプロジェクトで Identity テーブルを作成しました。現在、同じデータベースを使用して別のWebサイトを作成する必要があるが、Identityのバージョンは2.0になっている。 そのため、新しい Web サイトで認証しようとすると、いくつかのエラーが発生します。
Migrations のアプローチを使ってデータベースを移行しようとしましたが、混乱していて、次のようなエラーが発生しました。
There is already an object named 'AspNetRoles' in the database.
PM コンソールで Update-Database と入力したとき。
私の質問は、両方のサイト(1つはIDバージョン1.0を使用し、もう1つは2.0を使用)の認証に同じデータベースを使用する最良の方法は何かということです。本当にデータベースを移行する必要があるのでしょうか?
もしそうなら、このエラーはどのように解決すればいいのでしょうか?
どのように解決するのですか?
Add-Migration InitialMigrations -IgnoreChanges
これで、空の "InitialMigration" ファイルが生成されるはずです。ここで、必要なクラスに必要な変更を追加してください。変更を加えたら、updateコマンドを再度実行してください。
update-database -verbose
これで自動移行が適用され、テーブルがあなたの変更内容で変更されます。
編集する ID1を2に移行するための解決策はこちらです。 ASP.NET.Identity 1.0から2.0へのアップグレードについて この手動移行を使用する
public override void Up()
{
RenameColumn(table: "dbo.AspNetUserClaims", name: "User_Id", newName: "UserId");
RenameIndex(table: "dbo.AspNetUserClaims", name: "IX_User_Id", newName: "IX_UserId");
DropPrimaryKey("dbo.AspNetUserLogins");
AddColumn("dbo.AspNetUsers", "Email", c => c.String(maxLength: 256));
AddColumn("dbo.AspNetUsers", "EmailConfirmed", c => c.Boolean(nullable: false));
AddColumn("dbo.AspNetUsers", "PhoneNumber", c => c.String());
AddColumn("dbo.AspNetUsers", "PhoneNumberConfirmed", c => c.Boolean(nullable: false));
AddColumn("dbo.AspNetUsers", "TwoFactorEnabled", c => c.Boolean(nullable: false));
AddColumn("dbo.AspNetUsers", "LockoutEndDateUtc", c => c.DateTime());
AddColumn("dbo.AspNetUsers", "LockoutEnabled", c => c.Boolean(nullable: false));
AddColumn("dbo.AspNetUsers", "AccessFailedCount", c => c.Int(nullable: false));
AlterColumn("dbo.AspNetUsers", "UserName", c => c.String(nullable: false, maxLength: 256));
AlterColumn("dbo.AspNetUsers", "FirstName", c => c.String(nullable: false));
AlterColumn("dbo.AspNetUsers", "LastName", c => c.String(nullable: false));
AddColumn("dbo.AspNetUsers", "CreatedDateTime", c => c.DateTime(nullable: false));
AlterColumn("dbo.AspNetRoles", "Name", c => c.String(nullable: false, maxLength: 256));
AddPrimaryKey("dbo.AspNetUserLogins", new[] { "LoginProvider", "ProviderKey", "UserId" });
CreateIndex("dbo.AspNetUsers", "UserName", unique: true, name: "UserNameIndex");
CreateIndex("dbo.AspNetRoles", "Name", unique: true, name: "RoleNameIndex");
DropColumn("dbo.AspNetUsers", "Discriminator");
}
関連
-
[解決済み] このコマンドに関連する開いているDataReaderがすでにあり、最初にそれを閉じる必要があります。
-
[解決済み】VS 2015でコントローラからビューを追加できない : "選択されたコードジェネレータの実行にエラーが発生しました"
-
[解決済み] glyphicons-halflings-regular.woff2 not foundに関するエラーを削除する方法
-
[解決済み] ASP.NET MVC ビューエンジンの比較
-
[解決済み】jQuery Ajaxの呼び出しとHtml.AntiForgeryToken()について)
-
[解決済み】リポジトリとサービスレイヤーの違い?
-
[解決済み】Java Server Faces 2.0の主なデメリットは何ですか?
-
[解決済み] ASP.Net MVC デフォルトの HTTP ヘッダーを削除する方法は?
-
[解決済み] Entity Frameworkのデータベースを再作成する方法は?
-
[解決済み] ASP.NET MVCとIIS7で生のHTTPリクエスト/レスポンスをログに記録する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】同じキーのアイテムがすでに追加されています。
-
[解決済み] MVC 3 - 辞書に渡されたモデル項目の型は 'System.Collections.Generic.List`1 です。
-
[解決済み] ELMAHをASP.NET MVCの[HandleError]属性で動作させる方法は?
-
[解決済み] ASP.NET MVCでHTML-5のdata-*属性でダッシュを使用する方法
-
[解決済み】1つのビューに複数のモデルを表示する
-
[解決済み】Html.ActionLinkを使用して別のコントローラのアクションを呼び出す
-
[解決済み] ASP.NET MVCコントローラから外部URIへのリダイレクト
-
[解決済み] mvc 4 で部分ビューにパラメータを渡すにはどうすればよいですか?
-
[解決済み] ASP.NET MVCとIIS7で生のHTTPリクエスト/レスポンスをログに記録する
-
[解決済み] NerdDinnerでASP.NET MVCでModelState.IsValidは何のために有効なのか?