Eric Wright wrote on 2009-04-10:
> I have what I hope is not a dumb question. I'm trying to follow best
> practices here and am writing a piece of business logic that I feel
> should be Catalyst agnostic and therefore am creating a custom model.
> (However, at the moment Catalyst is the primary consumer of this lib.)
> I'd like to use my DBIC::Schema goodness for DB access and happily have
> abstracted that via Catalyst::Model::DBIC::Schema. The thing is I
> realized that if I connect to this schema outside of the scope of
> Catalyst via DBIx::Class::Schema->connect I have to pass in the
> connection info separately which really bugs me because I've already
> defined it via a configuration file for the Catalyst app (using
> Config::General). I suppose I could just pass that info into the model
> but that seems messy and redundant to me. If I subclass Catalyst::Model
> well then I'm tightly coupled with Catalyst again. I'd like to just be
> able to glue the model to Catalyst and do a:
>
> $c->model('MyCustomModel')->foo(...)
>
> and it just work.
>
> It seems to me there should be a simple way for this schema to know its
> connection info based on context and I figured there's like a slick
> Catalyst ninja kind of method for doing this that my brain is just not
> grasping at the moment. How do you do this sort of thing? Is the magic
> in the Catalyst glue?
>
> Thanks in advance for any advice/thoughts/comments...
>
> -Eric
>
I'm not sure if there's a special Catalyst way of doing this, but I use my
schema classes from my various places, so I moved my db connection data into a
separate config file that all apps can access. I have a separate class I wrote
that looks for the config file in a few specific places (depending on whether
you're in dev mode or production mode) and reads it. This class provides the
connection info to the schema class. This way I can easily move my database,
update the info in one file, and all apps automatically get the new connection
info.
Hope that helps.
Byron
_______________________________________________
List: [email protected]
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/[email protected]/
Dev site: http://dev.catalyst.perl.org/