Search code examples
powershelltry-catchliquibasecicd

How to catch unexpected error running Liquibase in PowerShell


I have a small CI/CD script which is written in PowerShell, but I don't know how to stop it, if in the script I get unexpected error running Liquibase. All scripts in SQL and work (preconditions in place where I need to add), but I want to have more opportunity to control CI/CD script. Now, if the script gets the exception, it continues execution. The script updates some schemes and some of them has an influence on each other, so order is important.

#update first scheme - ETL (tables, global temp tables, packages)
.\liquibase update --defaults-file=import.properties

#how to stop this script, if I get unexpected error running Liquibase?

#update second scheme - data (only tables and roles for data)
.\liquibase update --defaults-file=data.properties
#update third scheme - views, tables and other for export data
.\liquibase update --defaults-file=export.properties


Solution

  • Have you tried this?

    $result = Start-Process -filepath 'path to liquibase' -ArgumentList "your liquibase arguments go here" -wait
    if($result.ExitCode -ne 0){
      write-host 'something went wrong'
    }