/ / AzureでCode First移行を有効にする方法-c#、entity-framework、azure、ef-migrations

Azureでコードファーストマイグレーションを有効にする方法 - c#、entity-framework、azure、ef-migrations

Code First Migrationアプローチを使用して、VS 2013でMVC 5プロジェクトを開発しています。最初は、ローカルでも、MVCサイトをazureに初めてデプロイしたときでも、すべて正常に機能していました。

両方の場所(ローカルおよびAzure)で、IDテーブルが正しく作成されました。

  • __MigrationHistory
  • AspNetRoles
  • AspNetUserClaims
  • AspNetUserLogins
  • AspNetUserRoles
  • AspNetUser

私が直面している問題は、2つの新しい列:ユーザーのこのデータを保存する名前と姓。次に、First Code Migrationを使用してスキーマを更新します。ローカルマシンで正しく更新されました。新しい列がAspNetUserテーブルに追加されました。

ただし、Azureにデプロイしたとき、そのテーブルにはまだ新しい列が含まれていません。そのため、エラーが発生します。

Server Error in "/" Application.

Invalid column name "Name".
Invalid column name "LastName".
Invalid column name "Name".
Invalid column name "LastName".
Invalid column name "Name".
Invalid column name "LastName".

それでは、AzureのMVCプロジェクトへのコードファーストマイグレーションをどのように有効にできますか?したがって、Visual Studioからデプロイすると、データベーススキーマもAzureで更新されます。

回答:

回答№1は1

2つのソリューションがあります。

1.使用方法 Update-Database パッケージマネージャーコンソールから:

パッケージマネージャーコンソールから次を実行します。

Update-Database
-TargetMigration {YourMigration}
-ConnectionString "Server=tcp:{your server name}.database.windows.net,1433;
Database={your db};
User ID={your user}@{your server};
Password={your password};
Trusted_Connection=False;
Encrypt=True;
Connection Timeout=30;"
-ConnectionProviderName "System.Data.SqlClient"

Azure Portal接続文字列の関連するサーバー名、ユーザー名、データベース、パスワードのデータを置き換えます

2.コードから移行を実行します。

次を追加する Application_Start Global.asaxで

protected void Application_Start()
{
//....

// Running Migrations from Code:
var configuration = new Configuration();
var migrator = new DbMigrator(configuration);
migrator.Update();
}

Updateメソッドを呼び出すと、ターゲットデータベースが最新の移行に更新されます。

撮影場所: https://romiller.com/2012/02/09/running-scripting-migrations-from-code/