NAME
DBIx::Connect::FromConfig - Creates a DB connection from a configuration file
VERSION
Version 0.07
SYNOPSIS
use DBI;
use DBIx::Connect::FromConfig -in_dbi;
my $dbh = DBI->connect_from_config(config => $config);
# do DBI stuff
or, if you don't want to pollute DBI
namespace:
use DBI;
use DBIx::Connect::FromConfig;
my $dbh = DBIx::Connect::FromConfig->connect(config => $config);
# do DBI stuff
DESCRIPTION
DBIx::Connect::FromConfig
provides a generic way to connect to a database using settings from a configuration object.
EXPORT
This module does not export any function, but if given the -in_dbi
import option, it will install an alias of the connect()
function in the DBI
namespace, thus allowing it to be called as a method of DBI
(see the synopsis).
FUNCTIONS
connect()
Try to connect to a database using DBI and return the corresponding object.
Settings
driver
- the name of theDBI
driver for the database. This parameter is mandatory.database
the name of the database. This parameter is mandatory.host
- the hostname of the database. May be empty.port
- the port of the database. May be empty.options
-DBD
options, given as a plain string. Will be appended at the end of the constructed DSN.username
- the user name used to connect to the database. Defaults to the current user.password
- the password used to connect to the database. May be empty.attributes
-DBI
attributes, likeRaiseError
orAutoCommit
.
Parameters
config
- expects something that contains the settings:a hash reference with the settings stored as first-level keys.
a
Config::IniFiles
object; the settings must be available from the section named as given by thesection
parameter.a
Config::Simple
object; the settings must be available from the section named as given by thesection
parameter.a
Config::Tiny
object; the settings must be available from the section named as given by thesection
parameter.
section
- name of the section to look for the database settings; defaults to"database"
Examples
Connect to a database, passing the settings in a plain hash reference:
my %settings = (
driver => 'Pg',
host => 'bigapp-db.society.com',
database => 'bigapp',
username => 'appuser',
password => 'sekr3t',
attributes => { AutoCommit => 1, RaiseError => 1 },
);
my $dbh = DBI->connect_from_config(config => \%settings);
Connect to a database, passing the settings from a configuration file:
my $config = Config::IniFiles->new(-file => '/etc/hebex/mail.conf');
my $dbh = DBI->connect_from_config(config => $config);
where the configuration file could look like:
[database]
driver = Pg
host = bigapp-db.society.com
database = bigapp
username = appuser
password = sekr3t
attributes = AutoCommit=1,RaiseError=1
DIAGNOSTICS
Database driver not specified
-
(E) The setting specifying the database driver was not found or was empty.
Database driver %s not supported
-
(E) The specified database driver is not supported by this module.
DBI attributes must be given as a hashref or a string
-
(E) The function was given an improper value for the DBI attributes.
No parameter given
-
(E) The function can't do anything if you don't give it the required arguments.
Odd number of arguments
-
(E) The function expects options as a hash. Getting this message means something's missing.
Unknown type of configuration
-
(E) The function doesn't know how to handle the type of configuration you gave it. Use a supported one, bug the author, or send a patch
;-)
AUTHOR
Sébastien Aperghis-Tramoni, <sebastien at aperghis.net>
BUGS
Please report any bugs or feature requests to bug-dbix-connect-fromconfig at rt.cpan.org
, or through the web interface at http://rt.cpan.org/Public/Dist/Display.html?Name=DBIx-Connect-FromConfig. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.
SUPPORT
You can find documentation for this module with the perldoc command.
perldoc DBIx::Connect::FromConfig
You can also look for information at:
RT: CPAN's request tracker
http://rt.cpan.org/NoAuth/Bugs.html?Dist=DBIx-Connect-FromConfig
AnnoCPAN: Annotated CPAN documentation
CPAN Ratings
Search CPAN
COPYRIGHT & LICENSE
Copyright 2008-2012 Sébastien Aperghis-Tramoni, all rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.