プロジェクトをEntity Framework 4.3にアップグレードし、プロジェクトの移行を有効にしました。EF 4.3でUpdate-Databaseを実行しているときにエラーが発生しました
更新-Databaseコマンドを実行している場合しかし、私はこのエラーを取得:
は、ターゲット・データベースが以前のEF 4.3よりもコードファーストのバージョンで作成されたため、次の移行を足場できないと移行履歴が含まれていません表。このデータベースに対して移行を開始するには、現在のモデルがターゲットデータベースと互換性があることを確認し、移行プロセスを実行します。 (Visual Studioでは、パッケージマネージャコンソールのUpdate-Databaseコマンドを使用して、移行プロセスを実行できます)。
基本的には、私にエラーを返す同じコマンド(Update-Database)を実行するように指示しています。
アイデア?
ないまさに「楽しい」の方法は、それを行うには、私はアプリが「__MigrationHistory」と呼ばれるシステムテーブルを作成し、新しいデータベースを作成してみましょう。私はその後、次のスクリプトを実行して、古いデータベースにそのテーブルを作成しました。また、新しいデータベースに存在する1つの行を古いデータベースにコピーするためのスクリプトも作成しました。
マイクロソフトまたはコミュニティの誰かがこれを行うより効率的な方法を知っている場合は、ここに投稿してください!
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[__MigrationHistory](
[MigrationId] [nvarchar](255) NOT NULL,
[CreatedOn] [datetime] NOT NULL,
[Model] [varbinary](max) NOT NULL,
[ProductVersion] [nvarchar](32) NOT NULL,
CONSTRAINT [PK___MigrationHistory] PRIMARY KEY CLUSTERED
(
[MigrationId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
ありがとうございます!私は使用する必要のあるデータベースに多くのデータがあるので、_MigrationHistoryテーブルを作成する道を行くと思います。 –
IIも同様の問題を抱えていました。私もデータを保持する必要がありました。しかし、モデルを編集して列を追加しようとすると、「Add-migration newcolumns」が作成されたが、作成された移行ではすべてを削除してやり直したかった。その解決策は、何かを編集する前に最初のマイグレーションを追加して、空のアップ/ダウンメソッドを持つマイグレーションクラスを作成することでした。その後、私のモデルを編集して別のAdd-Migrationを実行しました。これは、必要な変更だけで新しい移行クラスを作成しました。何も落とさずに。 – Moulde