The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

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

SYNOPSIS

    package MyApp::Model::DB;

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

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

    #
    # or in application config
    #
    <Model::DB>
        <connect_info>
            active_connection   mysql_devel
            <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>
        </connect_info>
    </Model::DB>

DESCRIPTION

Enable connect_info to be hash with several named connections defined inside, and choose active one with active_connection. Also, set AutoCommit option for you to 1, if you don't set it yet.

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

TODO

Write tests.

REPOSITORY

Project is hosted at GitHub:

    git://github.com/cub-uanic/c-t-m-dbic-schema-connectinfo-several.git

SEE ALSO

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

AUTHOR

Oleg Kostyuk, <cub at cpan.org>

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.