0

ASP.Net メンバーシップ テーブルのコピー中に問題が発生しました。スキーマだけが欲しいので、データをコピーせずにスクリプトを生成しました。

新しいサイトにアクセスすると表示されました

'System.Web.Security.SqlMembershipProvider' には、スキーマ バージョン '1' と互換性のあるデータベース スキーマが必要です。ただし、現在のデータベース スキーマはこのバージョンと互換性がありません。aspnet_regsql.exe (フレームワークのインストール ディレクトリにある) を使用して互換性のあるスキーマをインストールするか、プロバイダーを新しいバージョンにアップグレードする必要がある場合があります。

これが私が行ったステップバイステップですが、うまくいきません。

  1. ソース サーバーの SSMS から、データベースを右クリックします。
  2. タスク -> スクリプトの生成
  3. [スクリプト オプションの選択] で、[次へ] をクリックしました。
  4. [オブジェクト タイプの選択] で、すべてを選択して [次へ] をクリックします。
  5. [データベース ロールの選択] で、すべてを選択しました。
  6. [スキーマの選択] で、すべてを選択しました。
  7. [Choose Stored Procedure] で、[Choose Title] をすべて選択します。
  8. [すべて表示] を選択します。
  9. 新しいクエリ ウィンドウへのスクリプト。
  10. 宛先サーバーの SSMS で、スクリプトを実行します。
  11. 空のテーブルが作成されました。
  12. aspnet_regsql.exe を実行したところ、aspnet_SchemaVersions が読み込まれました。

しかし、それでもエラーが発生します... アイデアが不足していました。

4

1 に答える 1

2

aspnet_SchemaVersionテーブルにいくつかのデータが必要です。使用しているデータベースのテーブルの情報を確認し、スクリプトの最後に挿入を追加して、そのデータをaspnet_SchemaVersionテーブルに追加します。頭のてっぺんに何が入っているのか思い出せませんが、かなりシンプルなものです。

ここに行くと、おそらくこれを行う必要があります。バージョン番号が変更されたとは思いませんが、既存のデータベースを確認する必要があります。

INSERT INTO aspnet_SchemaVersions (Feature, CompatibleSchemaVersion, IsCurrentVersion)
VALUES(‘common’, 1, 1) 

INSERT INTO aspnet_SchemaVersions (Feature, CompatibleSchemaVersion, IsCurrentVersion)
VALUES(‘health monitoring’, 1, 1) 

INSERT INTO aspnet_SchemaVersions (Feature, CompatibleSchemaVersion, IsCurrentVersion)
VALUES(‘membership’, 1, 1) 

INSERT INTO aspnet_SchemaVersions (Feature, CompatibleSchemaVersion, IsCurrentVersion)
VALUES(‘personalization’, 1, 1) 

INSERT INTO aspnet_SchemaVersions (Feature, CompatibleSchemaVersion, IsCurrentVersion)
VALUES(‘profile’, 1, 1) 

INSERT INTO aspnet_SchemaVersions (Feature, CompatibleSchemaVersion, IsCurrentVersion)
VALUES(‘role manager’, 1, 1)
于 2012-06-08T10:30:26.903 に答える