++ed by:

2 PAUSE users
1 non-PAUSE user.

Dave Rolsky


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


version 0.11


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

      database => 'NewDB',
      options  => [
          '--encoding', 'UTF-8',
          '--owner',    'alice',


This class provides a wrapper for the createdb utility.


This class provides the following methods:

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

The constructor accepts a number of parameters:

  • executable

    The path to createdb. By default, this will look for createdb 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.

$createdb->run( database => $db, ... )

This method runs the createdb command with the given options.

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

This method accepts the following arguments:

  • database

    The name of the database to create. Required.

  • options

    A list of additional options to pass to the command. Optional.


See Pg::CLI for bug reporting details.


Dave Rolsky <autarch@urth.org>


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

This is free software, licensed under:

  The Artistic License 2.0 (GPL Compatible)