ユーザー入力に基づいて FluentMigrator 移行を実行するバッチ ファイルがあります。最後のステップは、以下のように移行ツールを実行することです。
"%~dp0\FluentMigrator.1.1.2.1\tools\Migrate.exe" /conn "DATA SOURCE=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=%HostName%)(PORT=%ServerPort%))(CONNECT_DATA=(SERVICE_NAME=%ServiceName%)));PASSWORD=%installerUserPW%;PERSIST SECURITY INFO=True;USER ID=%installerUserName%;" /provider oracle /context %installerUserName% /assembly ./bin/Debug/DatabaseMigrations.dll >> install_log.txt
ECHO.
echo ------------------------------------------------------------------------------->> install_log.txt
echo ------------------ Database Setup has executed successfully ------------------ >> install_log.txt
echo ------------------------------------------------------------------------------->> install_log.txt
TYPE install_log.txt
GOTO:EOF
これは必要に応じて機能します。Migrate.exe アプリは、すべての出力をファイルに出力し、次に成功メッセージを出力します。その後、ファイルがコンソールに書き込まれるため、コンソールとファイルのコピーが作成されます。ただし、ユーザーがデータベースへの書き込み権限を持っていない場合など、移行が失敗した場合、期待どおりに動作しません。この場合、終了メッセージは、ファイルが正しく実行されたことを期待しています。マイグレータがエラーで終了したかどうかを判断する方法はありますか?
表示したい:
- 移行コード
- (失敗した場合) 失敗のエラー メッセージ
- (else) 成功メッセージ
編集:私はもともとエラーと一般的な出力の両方を表示する方法について尋ねました-これは>> install_log.txt 2>&1
コードによって達成されました。あとは、移行時にエラーが発生したかどうかを特定する方法を理解する必要があります。