[Catalyst] model connect info to come from YAML configuration file

Juan Miguel Paredes juan.paredes at gmail.com
Tue Dec 5 13:46:06 GMT 2006


On 12/5/06, Juan Miguel Paredes <juan.paredes at gmail.com> wrote:
> On 12/5/06, Juan Miguel Paredes <juan.paredes at gmail.com> wrote:
> > On 12/5/06, Hermida, Leandro <Leandro.Hermida at fmi.ch> wrote:
> > > Hello,
> > >
> > > I remember seeing the question being asked before but I couldn't find it
> > > in the archives.  How does one set up the model connect info to come
> > > from the YAML configuration file?  Using the tutorial as an example, I
> > > created the model file with the helper script myapp_create.pl:
> > >
> > > $ script/myapp_create.pl model MyAppDB DBIC::Schema MyAppDB
> > > dbi:SQLite:myapp.db '' '' '{ AutoCommit => 1 }'
> > >      exists "/root/dev/MyApp/script/../lib/MyApp/Model"
> > >      exists "/root/dev/MyApp/script/../t"
> > >     created "/root/dev/MyApp/script/../lib/MyApp/Model/MyAppDB.pm"
> > >     created "/root/dev/MyApp/script/../t/model_MyAppDB.t"
> > >
> > > Inside MyApp::Model::MyAppDB:
> > >
> > > use strict;
> > > use base 'Catalyst::Model::DBIC::Schema';
> > >
> > > __PACKAGE__->config(
> > >     schema_class => 'MyAppDB',
> > >     connect_info => [
> > >         'dbi:SQLite:myapp.db',
> > >         '',
> > >         '',
> > >         { AutoCommit => 1 },
> > >
> > >     ],
> > > );
> > >
> > >
> > > How would I then make all of the connect info dynamic and acquired from
> > > the myapp.yml file?  In particular the db driver (sqlite, mysql, pg,
> > > oracle), host, port, username, password, etc.
> > >
> > >
> > > Leandro
> > >
> > >
> > > _______________________________________________
> > > List: Catalyst at lists.rawmode.org
> > > Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst
> > > Searchable archive: http://www.mail-archive.com/catalyst@lists.rawmode.org/
> > > Dev site: http://dev.catalyst.perl.org/
> > >
> > Hi, All!
> >
> > Currently, I have something like:
> >
> > __PACKAGE__->config(
> >     schema_class => 'MyAppBD',
> >     connect_info => [
> >         MyApp->config->{'db'},
> >         MyApp->config->{'db_user'},
> >         MyApp->config->{'db_password'},
> >         {AutoCommit => 1}
> >     ],
> > );
> >
> > Regards.
> >
>
> Sorry, _send_ hitted before time...
>
> And in myapp.yml, something like:
>
> db: dbi:Pg:dbname=mydb;host=myhost
> db_user: myuser
> db_password: mypass
>

In any case, Brian's approach seems the way to go... thanks a lot!



More information about the Catalyst mailing list