NAME

Pg::CLI::psql - Wrapper for the psql utility

VERSION

version 0.14

SYNOPSIS

my $psql = Pg::CLI::psql->new(
    username => 'foo',
    password => 'bar',
    host     => 'pg.example.com',
    port     => 5433,
);

$psql->run(
    database => 'database',
    options  => [ '-c', 'DELETE FROM table' ],
);

$psql->execute_file(
    database => 'database',
    file     => 'thing.sql',
);

my $sql = '...';
my $errors;
$psql->run(
    database => 'foo',
    stdin    => \$sql,
    stderr   => \$errors,
);

DESCRIPTION

This class provides a wrapper for the psql utility.

METHODS

This class provides the following methods:

Pg::CLI::psql->new( ... )

The constructor accepts a number of parameters:

  • executable

    The path to psql. By default, this will look for psql in your path and throw an error if it cannot be found.

  • username

    The username to use when connecting to the database. Optional.

  • password

    The password to use when connecting to the database. Optional.

  • host

    The host to use when connecting to the database. Optional.

  • port

    The port to use when connecting to the database. Optional.

  • require_ssl

    If this is true, then the PGSSLMODE environment variable will be set to "require" when connecting to the database.

  • quiet

    This defaults to true. When true, the "-q" flag is passed to psql whenever it is executed.

$psql->run( database => ..., options => [ ... ] )

This method runs a command against the specified database. You must pass one or more options that indicate what psql should do.

This method also accepts optional stdin, stdout, and stderr parameters. These parameters can be any defined value that could be passed as the relevant parameter to IPC::Run3's run3 subroutine.

Most notably, you can pass scalar references to pipe data in via the stdin parameter or capture output sent to stdout or stderr

$psql->execute_file( database => ..., file => ... )

This method executes the specified file or files against the database. file should either be the path to a single file as a string or Path::Class::File or an arrayref of such paths. You can also pass additional options via the options parameter.

This method also accepts optional stdin, stdout, and stderr parameters, just like the $psql->run() method.

$psql->version()

Returns a the three part version as a string.

$psql->two_part_version()

Returns the first two decimal numbers in the version.

SUPPORT

Bugs may be submitted at http://rt.cpan.org/Public/Dist/Display.html?Name=Pg-CLI or via email to bug-pg-cli@rt.cpan.org.

I am also usually active on IRC as 'autarch' on irc://irc.perl.org.

SOURCE

The source code repository for Pg-CLI can be found at https://github.com/houseabsolute/Pg-CLI.

AUTHOR

Dave Rolsky <autarch@urth.org>

COPYRIGHT AND LICENSE

This software is Copyright (c) 2018 by Dave Rolsky.

This is free software, licensed under:

The Artistic License 2.0 (GPL Compatible)

The full text of the license can be found in the LICENSE file included with this distribution.