The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
=head1 Name

sqitch-verify - Verify deployed database changes

=head1 Synopsis

  sqitch [options] verify
  sqitch [options] verify --from-target <target>
  sqitch [options] verify --to-target <target>
  sqitch [options] verify --from-target <target> --to-target <target>

=head1 Description

Verify that a database is valid relative to the plan and the verification
scripts for each deployed change.

More specifically, C<verify> iterates over all deployed and planned changes
(or the subset identified by C<--from-target> and/or C<--to-target>) and
checks that each:

=over

=item *

Is deployed.

=item *

Is present in the plan.

=item *

Was deployed in the proper order.

=item *

Passes its verify test, if one exists.

=back

Verify tests are scripts that may be associated with each change. If a change
has no verify script, a warning is emitted, but it is not considered a
failure.

Verify scripts should make no assumptions about the contents of the database,
as unit tests might. Rather, their job is to ensure that the state of a
database is correct after a deploy script has completed. Verify scripts are
run through the database engine command-line client, just like deploy and
revert scripts. They should cause the client to exit with a non-zero exit code
if they fail.

=head1 Options

=over

=item C<--from-target>

=item C<--from>

Specify the change target with which to start the verification. Defaults to
the earliest deployed change. See L<sqitchchanges> for the various ways in
which change targets can be specified.

=item C<--to-target>

=item C<--to>

Specify the change target with which to complete the verification. Defaults to
the last deployed change. See L<sqitchchanges> for the various ways in which
change targets can be specified.

=item C<-s>

=item C<--set>

Set a variable name and value for use by the database engine client, if it
supports variables. The format must be C<name=value>, e.g.,
C<--set defuser='Homer Simpson'>. Overrides any values loaded from the
C<verify.variables> configuration.

=back

=head1 Configuration Variables

=over

=item C<[verify.variables]>

A section defining database client variables. Useful if your database engine
supports variables in scripts, such as PostgreSQL's
L<C<psql> variables|http://www.postgresql.org/docs/current/static/app-psql.html#APP-PSQL-INTERPOLATION>.

=back

=head1 Sqitch

Part of the L<sqitch> suite.