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.