[Catalyst] Model configuration through .yml

Stuart Watt swatt at infobal.com
Wed Jan 13 14:55:50 GMT 2010


It certainly is possible. We do it that way, with two YAML config files. 
One has the schema_class (this is the one in the home area) and the 
second has the connect_info (I guess the typed "connect_into" is just a 
typo), which we put in a separate file in the site's directory, so we 
can run several sites, only changing the db connection info. I can't see 
an obvious explanation from these snippets, but it looks more like the 
module loading is the problem, not the configuration. Maybe check the 
modules load from a debugged Perl starting your app and then a manual 
"use Schema::MyApp;"?

I've kind of gone off YAML for configuration, but since it took me 2 
years to get my colleagues to edit them rather than raw Perl code, can't 
change now.

--Stuart

Emmanuel Quevillon wrote:
> Hi,
>
> I'd like to know something, probably a basic problem but just to be sure.
> Is it possible to configure Application db connection into .yml 
> configuration file like :
>
> Model::MyAppDB
>     schema_class: Schema::MyApp
>     connect_into:
>     - dbi:Pg:dbname=myapp
>     - user
>     - password
>     - options
>
>
> Actually i tried this way but I cannot connect to the database, 
> neither start my application, perl is not able to locate my schema 
> class...!!
>
> Here is the error:
>
> Couldn't load class (Schema::MyApp) because: Couldn't instantiate 
> component "BiblioList::Model::MyAppDB", "Can't locate Schema/MyApp.pm 
> in @INC
>
> I can make it working if I add into Model::MyApp this :
>
> __PACKAGE__->config( ... );
>
> I first did it, just adding 'schema_class' infos and leaving 
> connect_info into config file and it works like a charm.
> However, the strange thing is that, other db connection I configured 
> for other databases can connect correctly even if I use another Schema 
> module like Schema::FooBarDB located under the same directory as 
> Schema::MyApp
>
> For example in another confg file I load using 
> C::Plugin::ConfigLoader::Multi
>
> I can define this
>
> Model::RemoteDB::AnotherDB:
>     schema_class: Schema::FooBarDB
>     connect_info:
>         - ..
>
> and it connect correctly to my foobardb without throwing errors above.
>
> Is this normal behavior from Catalyst or is there something I am doing 
> wrong or just a bug?
>
> Thanks for any hint.
>
> Regards
>
> Emmanuel
>
> _______________________________________________
> List: Catalyst at lists.scsys.co.uk
> Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
> Searchable archive: 
> http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
> Dev site: http://dev.catalyst.perl.org/
>
> -- 
> This message was scanned by ESVA and is believed to be clean.
> Click here to report this message as spam. 
> http://antispam.infobal.com/cgi-bin/learn-msg.cgi?id=EDF782807B.A15EF
>




More information about the Catalyst mailing list