Name

Module::Build::DBD:Pg - PostgreSQL specifics for Module::Build::DB

Description

This module contains a number of class methods called by Module::Build::DB to handle PostgreSQL specific tasks when detecting, building, and updating a database.

Methods

All methods are class methods.

get_client()

my $client = Module::Build::DBD::Pg->get_client;

Returns the name of the client to use to connect to PostgreSQL. For now, that's just psql, which is fine if it's in your path. Some code to search for a client might be added in the future. Either way, it's best to specify use the --db_client option to avoid all ambiguity.

get_db_and_command()

my ($db_name, $cmd) = Module::Build::DBD::Pg->get_db_and_command($client, $params);

Returns a database name culled from $params and an array reference with $client and all required options for all access to the database. $params contains both the contents of the context configuration file's DBI section and the attributes defined in the driver DSN (e.g., dbname=foo in dbi:Pg:dbname=foo).

get_db_option()

my @opts = Module::Build::DBD::Pg->get_db_option($db_name);

Returns a list of options to be appended to the command returned by get_db_and_command() to connect to a specific database. For PostgreSQL, that's simply ('--dbname' => $dbname).

get_create_db_command()

my @command = Module::Build::DBD::Pg->get_create_db_command($cmd, $db);

Returns a command list suitable for passing to system() that will create a new database. $cmd is the command returned by get_db_and_command() and $db is the name of the database to be created.

get_drop_db_command()

my @command = Module::Build::DBD::Pg->get_drop_db_command($cmd, $db);

Returns a command list suitable for passing to system() that will drop an existing database. $cmd is the command returned by get_db_and_command() and $db is the name of the database to be dropped.

get_check_db_command()

my @command = Module::Build::DBD::Pg->get_check_db_command($cmd, $db);

Returns a command list suitable for passing to system() that will, when executed, output a 1 when $db exists and nothing when $db does not exist. $cmd is the command returned by get_db_and_command() and $db is the name of the database to be checked.

get_execute_command()

my @command = Module::Build::DBD::Pg->get_execute_command($cmd, $db, $sql);

Returns a command list suitable for passing to system() that will execute the SQL in $sql and return its output, if any. $cmd is the command returned by get_db_and_command(), $db is the name of the database to be connect to for the query, and $sql is the SQL command or commands to be executed.

get_file_command()

my @command = Module::Build::DBD::Pg->get_file_command($cmd, $db, $sql);

Returns a command list suitable for passing to system() that will execute the SQL in $file and return its output, if any. $cmd is the command returned by get_db_and_command(), $db is the name of the database to be connect to for the query, and $file is a file with SQL commands.

get_meta_table_sql()

my $sql = Module::Build::DBD::Pg->get_meta_table_sql;

Returns an SQL string that creates a metadata table named $table_name.

Author

David E. Wheeler <david@justatheory.com>

Copyright

Copyright (c) 2008-2010 David E. Wheeler. Some Rights Reserved.

This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.