ASP.NETコアツールを使用して移行スクリプトを作成する際に、/からの移行が見つかりません

asp.net-core ef-migrations entity-framework-core

質問

最後に適用された移行と最後に適用されなかった移行の間でSQLスクリプトを作成するために、コマンドdotnet ef migrations scriptを使用しようとしています。適用された移行は、 dotnet ef database updateと呼ばれるものです

私は次のコマンドを実行しようとすると、それらのどれも動作しません:

dotnet ef  --startup-project ../DbMigrations/ migrations script from LastAppliedMigration to LastNotAppliedMigration -o temp.sql --context MyProject.DbModel.MusicDbContext

dotnet ef  --startup-project ../DbMigrations/ migrations script from LastAppliedMigration -o temp.sql --context MyProject.DbModel.MusicDbContext

次のエラーが表示されます。System.InvalidOperationException: 'from'の移行が見つかりませんでした。

System.InvalidOperationException: The migration 'from' was not found.
   at Microsoft.EntityFrameworkCore.Migrations.MigrationsAssemblyExtensions.GetMigrationId(IMigrationsAssembly assembly, String nameOrId)
   at Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.GenerateScript(String fromMigration, String toMigration, Boolean idempotent)
   at Microsoft.EntityFrameworkCore.Design.MigrationsOperations.ScriptMigration(String fromMigration, String toMigration, Boolean idempotent, String contextType)
   at Microsoft.EntityFrameworkCore.Tools.Cli.MigrationsScriptCommand.Execute(CommonOptions commonOptions, String from, String to, String output, Boolean idempotent, String context, String environment)
   at Microsoft.EntityFrameworkCore.Tools.Cli.MigrationsScriptCommand.<>c__DisplayClass0_0.<Configure>b__0()
   at Microsoft.Extensions.CommandLineUtils.CommandLineApplication.Execute(String[] args)
   at Microsoft.EntityFrameworkCore.Tools.Cli.Program.Main(String[] args)

マイグレーション名の場合は、タイムスタンプの接頭辞を付けて両方のバージョンを試しました。

  1. 20160920085915_LastAppliedMigration
  2. LastAppliedMigration

私はこのコマンドdotnet ef migrations script正しく使用しますか?

1を編集

私は、私が持っている問題を実証するための簡単な例を示しました。この例はここからダウンロードできます。 ダウンロード例

私がしたこと:

  1. 既定のWebアプリケーションプロジェクトを作成しました
  2. dotnet ef migrations add Initial
  3. dotnet ef migrations script -o initial.sql - initial.sqlファイルが作成されました
  4. dotnet ef database update
  5. Data Studentクラスを追加
  6. `` DbSet in ApplicationDbContext``を追加しました
  7. dotnet ef migrations add Student
  8. dotnet ef migrations script from 20160924174811_Initial -o student.sql

ここで私は次のエラーが表示されます - 移行 'から'が見つかりませんでした。

Project WebApplication3 (.NETCoreApp,Version=v1.0) was previously compiled. Skipping compilation.              
System.InvalidOperationException: The migration 'from' was not found.                                          
   at Microsoft.EntityFrameworkCore.Migrations.MigrationsAssemblyExtensions.GetMigrationId(IMigrationsAssembly assembly, String nameOrId)                                                                                     
   at Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.GenerateScript(String fromMigration, String to Migration, Boolean idempotent)                                                                                 
   at Microsoft.EntityFrameworkCore.Design.MigrationsOperations.ScriptMigration(String fromMigration, String to Migration, Boolean idempotent, String contextType)                                                             
   at Microsoft.EntityFrameworkCore.Tools.Cli.MigrationsScriptCommand.Execute(CommonOptions commonOptions, String from, String to, String output, Boolean idempotent, String context, String environment)                     
   at Microsoft.EntityFrameworkCore.Tools.Cli.MigrationsScriptCommand.<>c__DisplayClass0_0.<Configure>b__0()   
   at Microsoft.Extensions.CommandLineUtils.CommandLineApplication.Execute(String[] args)                      
   at Microsoft.EntityFrameworkCore.Tools.Cli.Program.Main(String[] args)                                      
The migration 'from' was not found.

dotnet ef migrations listを作成すると、次の結果が得られます。

Project WebApplication3 (.NETCoreApp,Version=v1.0) was previously compiled. Skipping compilation.
20160924174811_Initial
20160924175511_Student

CLIツールのバージョンは次のとおりです。

dotnet --version
1.0.0-preview2-003131

人気のある回答

私はそれを理解した。

fromはオプション名ではなく、代わりにマイグレーション名を直接指定する必要があります。

以下の作業コマンドの例:

dotnet ef migrations script Initial -o student.sql

または有効である

dotnet ef migrations script 20160924174811_Initial -o student2.sql



Related

ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ