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: Catalyst@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/