Trace effects by running statements from SQL migration script

Reads $PGPASS for password to postgres, if ~/.pgpass is not found.

`eugene trace` exits with failure if any problems are detected.

Usage: eugene trace [OPTIONS] [paths]...

Arguments:
  [paths]...
          Path to SQL migration script, directories, or '-' to read from stdin

Options:
  -c, --commit
          Commit at the end of the transaction. Roll back by default

  -v, --var <PLACEHOLDERS>
          Provide name=value for replacing ${name} with value in the SQL script
          
          Can be used multiple times to provide more placeholders.

  -U, --user <USER>
          Username to use for connecting to postgres
          
          [default: postgres]

  -d, --database <DATABASE>
          Database to connect to
          
          [default: postgres]

  -H, --host <HOST>
          Host to connect to
          
          [default: localhost]

  -p, --port <PORT>
          Port to connect to
          
          [default: 5432]

  -e, --extra
          Show locks that are normally not in conflict with application code

  -s, --skip-summary
          Skip the summary section for markdown output

  -f, --format <FORMAT>
          Output format, plain, json or markdown
          
          [default: plain]
          [possible values: json, markdown, md, plain]

  -i, --ignore <IGNORED_HINTS>
          Ignore the hints with these IDs, use `eugene hints` to see available hints
          
          Can be used multiple times.
          
          Example: `eugene trace -i E3 -i E4`
          
          Or comment your SQL statement like this to ignore for a single statement:
          
          -- eugene: ignore E4
          
          alter table foo add column bar json;
          
          Use `-- eugene: ignore` to ignore all hints for a statement.

  -a, --accept-failures
          Exit successfully even if problems are detected
          
          Will still fail for invalid SQL or connection problems.

      --sort-mode <SORT_MODE>
          Sort mode for script discovery, auto, name or none
          
          This is used to order scripts when an argument contains many scripts.
          
          `auto` will sort by versions or sequence numbers.
          
          `auto` requires all files to have the same naming scheme.
          
          `name` will sort lexically by name.
          
          [default: auto]
          [possible values: auto, name, none]

      --disable-temporary
          Disable creation of temporary postgres server for tracing
          
          By default, trace will create a postgres server in a temporary directory
          
          This relies on having `initdb` and `pg_ctl` in PATH, which eugene images have.
          
          Eugene deletes the temporary database cluster when done tracing.

  -o, --postgres-options <POSTGRES_OPTIONS>
          Portgres options to pass to the temporary postgres server
          
          Example: `eugene trace -o "-c fsync=off -c log_statement=all"`
          
          [default: ]

      --initdb <INITDB_OPTIONS>
          Initdb options to pass when creating the temporary postgres server
          
          Example: `eugene trace --initdb "--encoding=UTF8"`
          
          Supply it more than once to add multiple options.

  -h, --help
          Print help (see a summary with '-h')
