2

既定では、Get-MigrationsコマンドはVisual Studioパッケージマネージャコンソールで実行されると、ターゲットデータベースに適用されたEntity Frameworkの移行の一覧を降順で返します。つまり、リストは最も新しい移行が最初にソートされます。Get-Migrationsの出力を昇順でソートしますか?

Get-Migrationsに移行のリストを昇順で返すようにする方法がありますか?つまり、最も古い移行が最初に返されますか?

  • は、例えば、Sort-Objectコマンドレットに出力をパイプで連結された:私がこれまで試したどのような

    Get-Migrations [my params] | Sort-Object -Property Name(どのプロパティ名を指定するのか、これが適用可能かどうかはわかりません)。これらの試みはすべて黙って失敗しました(エラーメッセージは表示されず、Get-Migrationsの出力に変更はありません)。

  • Get-Migrations(Get-Help Get-Migrations)のPowershellヘルプを参照し、Get-Migrations自体に出力並べ替え順序を制御するパラメータがあるかどうかWebを検索しました。 1つを見つけることができませんでした。私は現在取得しています。Get-移行コマンドの

出力:

PM> Get-Migrations [my arguments...] 
Retrieving migrations that have been applied to the target database. 
201704121534436_SomeMigration999 
201703291334212_SomeMigration998 
[lots and lots more records here that are a pain to scroll through...] 
201410110448547_InitializeTables 
201410110018266_InitialCreate 
+1

こんにちは、あなたがソートされていない出力、あなたのいくつかのサンプルを提供してくださいすることができます何か? – sodawillow

+1

@sodawillow良い質問、完了! –

+0

この 'cmdlet'はMicrosoftによって提供されていますか? – sodawillow

答えて

1

を提供するサンプル出力に基づいて、それはコマンドが返すテキストを思わ。

私は改行でsplitをいただきたい、と_上の分離2つのプロパティを取得し、その後、物事を並べ替えることができ:

#$migrations = Get-Migrations "..." 

#test values 
$migrations = "201704121534436_SomeMigration999 
201703291334212_SomeMigration998 
201410110448547_InitializeTables 
201410110018266_InitialCreate" 

$migrations.Split("`n") | ForEach-Object { 
    New-Object -TypeName psobject -Property @{ 
     Date = $_.Split("_")[0] 
     Name = $_.Split("_")[1] 
    } 
} | Sort-Object Name 
+0

私はこのアイデアが好きです!しかし、私はPackage Manager Consoleに入っているので、私はこれを1つのライナーとして実行する必要があると思います。まず最初に、以下を試しましたが、 "null値の式でメソッドを呼び出せません"というエラーが表示されています。(Get-Migrations [params])Split( "' n ") –

+0

Get-Migrationsエラーが発生する前に印刷されます。出力を文字列として返す代わりに、Get-Migrationsコマンドレットが実行中の出力を出力するかどうか疑問です。私は幸運の可能性がありますか? –

+0

コマンドの出力を「取り込み」できない場合、どのように処理するのか分かりません。たぶん出力ファイルを指定するパラメータがありますか? – sodawillow

関連する問題