プログラマーとして、日々の開発では、新鮮な道書き込みコード、アップグレードプログラムへ。アップグレードプログラムは、2つの部分を含む:まず、サービス・プログラムを更新する;第二には、データベース構造を更新することです。この投稿は、データベースのアップグレードは、公園には、以下の経験を忠実に持っているかどうか分からない場合は、データベース更新の構造について説明します。
1)スクリプトファイルは、それが失敗した結果として、存在する場合は判断しませんtableステートメントを構築します。
2)tableステートメントの建設中のフィールドの前にスクリプトファイルを変更し、関連するストアドプロシージャが失敗にオーダー実行とリードのうちに実行されます。
3)各履歴スクリプト・ファイル・コードは、ストアドプロシージャのコードが複数のスクリプトファイル内に存在するように、何度も繰り返されます。
4)新規のお客様は、多くの場合、あなたは、最新の製品を使用することができ、複数のスクリプトファイルを実行する必要があります。
多くのプログラマは、特定のAで心臓病のチームマネージャーとなり、データベースのアップグレードが成功するかどうか、と言うことができます。次に、EFコアの使用の詳細については、データベースのアップグレードを実装します。
A.使用EFコアデータベース移行コマンドモード
1.パッケージマネージャコンソール(PMC)データベースの移行
1)エンティティ(対応するデータベーステーブル)、データベース操作、データベース接続文字列、データベース操作およびサービス準備ができています。
。学生エンティティクラス
パブリック クラス学生
{
公共 int型の ID { 取得します。セット; }
パブリック 文字列姓{ 得ます。セット; }
パブリック 文字列氏名{ 得ます。セット; }
}
b。データベースの操作
パブリック クラスSchoolDB:DbContext { 公共 SchoolDB(DbContextOptions <SchoolDB>オプション):ベース(オプション)
{} 公共 DbSet <学生>学生{ 取得します。セット; } 保護 オーバーライド ボイドOnModelCreating(ModelBuilderのModelBuilderの){ modelBuilder.Entity <学生> ().ToTable(がNameOf(学生)); } }
C。でデータベース接続文字列appsettings.jsonの構成
{
"ロギング":{
"ログレベル":{
「デフォルト」:「情報」、
「マイクロソフト」:「警告」、
"Microsoft.Hosting.Lifetime": "情報"
}
}、
"AllowedHosts": "*"、
"のconnectionStrings":{
"SchoolDB": "サーバー= ERQFJF;データベース= SchoolDB;ユーザID =寺;パスワード= ******"
}
}
D。スタートアップにおける射出サービスデータベース操作
公共 のボイドConfigureServices(IServiceCollectionサービス)
{
services.AddControllersWithViews();
services.AddDbContext <SchoolDB>((オプション)=> {options.UseSqlServer(Configuration.GetConnectionString(" SchoolDB " ));});
}
。Eは、次の最初のコード構造とデータベース全体を、以降の処理が比較を操作しやすいです
2)図のように、PMCを開き。
3)その後、データベースをアップグレード、反復バージョンを作成するために、PMCの関連するコマンドを入力することができます。
。A反復バージョンを作成するコマンド移行追加:以下の表を
Bの更新とデータベースを使用してデータベースをアップグレードします。以下
アップグレードデータベースコマンドの更新、データベース
アップグレードの結果
4)ソリッドモデルの更新(例えば、新しいエンティティ、新しいエンティティ属性は、エンティティの属性などを変更する場合)、3(データベースを達成するために)ステップを更新、データベースを使用してデータベースを更新し、)アドインマイグレーションを用いて繰り返し(イタレーションファイルを作成します(表)および手順(エンティティ)同期到達データベースのアップグレード。
2.反復文書では、下記の
3.欠陥の説明:
PMCは、Visual Studioだけで実行し、本番環境で使用することはできません、あなたは、本番環境でデータベースをアップグレードするためにPMCを使用することはできません。
おそらく、データベースのスクリプトの実行にそれをエクスポートすることができます庭のクラブがあり、このアプローチは、製品の初めてのユーザーのみに適し、製品がユーザーのために使用されてきている、次の問題が存在します:
1)このスクリプトは、任意の新しい判決、スクリプトを変更する必要がありませんでしたので、このようなテーブル、フィールドを作成するよう、直接派生使用することはできません。
2)顧客の多くは、アップグレードされたバージョンと、各エクスポート・スクリプトに適用、矛盾している場合は一人の顧客ずつ、巨大なワークロード
3)一部の顧客データベース・サーバの管理は、部外者が直接データベース操作を接続することができない、非常に厳格です
II。データベースの自動アップグレード
1.2つの先行ステップ、PMCと一致
エンティティ(対応するデータベーステーブル)、データベース操作、データベース接続文字列、データベース操作およびサービス準備。
反復アドインの移行コマンドでファイルを作成します。
2.自動DatabaseFacade.Migrate法、以下のコードを介してデータベースを更新します
III。概要
ダウンを通じて、基本的にデータベースのアップグレード1.はじめに。データベースの移行は何である:実際には、データベースは、データベーススキーマを更新し、アップグレードしてください。
2. PMCだけでなく、CLIに加えて、データベースをアップグレードするためのコマンドモードでは、手順は似ていますが、ない同じコマンド。以下の表は、2つの方法でコマンドを示します:
3. DatabaseFacade.Migrate()データベースを自動的にアップグレードします。