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 theDBIdriver for the database. This parameter is mandatory.databasethe 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-DBDoptions, 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-DBIattributes, likeRaiseErrororAutoCommit.
Parameters
config- expects something that contains the settings:a hash reference with the settings stored as first-level keys.
a
Config::IniFilesobject; the settings must be available from the section named as given by thesectionparameter.a
Config::Simpleobject; the settings must be available from the section named as given by thesectionparameter.a
Config::Tinyobject; the settings must be available from the section named as given by thesectionparameter.
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.