NAME

Catalyst::TraitFor::Model::DBIC::Schema::ConnectInfo::Several - support for several connect_info entries.

VERSION

Version is 0.05

SYNOPSIS

package MyApp::Model::DB;

use Moose;
use namespace::autoclean;
extends 'Catalyst::Model::DBIC::Schema';

__PACKAGE__->config(
    {
        traits            => ['ConnectInfo::Several'],
        schema_class      => 'MyApp::Schema',
        active_connection => 'mysql_devel',
        connection      => {
            mysql_devel       => [ 'dbi:mysql:db_devel', 'user1', 'pass1' ],
            mysql_production  => [ 'dbi:mysql:db_prod',  'user2', 'pass2' ],
        },
    }
);

#
# or in application config
#
<Model::DB>
    traits                  ConnectInfo::Several
    active_connection       mysql_devel
    <connection>
        <mysql_devel>
            dns             dbi:mysql:db_devel
            user            user1
            password        pass1
        </mysql_devel>
        <mysql_prod>
            dns             dbi:mysql:db_prod
            user            user2
            password        pass2
        </mysql_prod>
    </connection>
</Model::DB>

DESCRIPTION

You can define several named connections in connection hash, and selectr which one should be used currently with active_connection. You shouldn't define connect_info, it will be set for you, depending on what you set in active_connection and connection. Also, set AutoCommit option for you to 1, if you don't set it yet.

This trait will do something only if you set active_connection, otherwise it just do nothing, like it was not used at all.

TODO

Write tests.

SEE ALSO

Catalyst::Model::DBIC::Schema, DBIx::Class, Catalyst

SUPPORT

AUTHOR

Oleg Kostyuk, <cub#cpan.org>

ACKNOWLEDGEMENTS

Matt S. Trout <mst#shadowcatsystems.co.uk>

COPYRIGHT & LICENSE

Copyright 2009 Oleg Kostyuk.

This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.

See http://dev.perl.org/licenses/ for more information.