[Dbix-class] connecting to different environments
Trevor Leffler
tleffler at uw.edu
Fri Sep 9 20:44:30 GMT 2011
Rob Kinyon wrote:
> On Fri, Sep 9, 2011 at 11:30, Alan Humphrey <alan.humphrey at comcast.net> wrote:
>> Hi –
>>
>> I’m wondering how people are handling connecting to different databases,
>> e.g. dev vs. test vs. production. Is there a technique that’s considered
>> “best practice”?
>
> Configuration files are good things. Just swap in the right config
> file for a given environment.
>
> Rob
I'd like to +1 config files for handling things like this, and follow up
with a config scheme that I've used; try it out, adapt, etc...
I'm very conservative with what I put in MyApp.pm. Any config here is
rarely if ever changed; so, I think of its config more as constants. If
it is changed, I refactor it out to...
myapp.conf contains default dev environment values. A dev who checks
out this project could start it up with little to no config changes.
The project contains a myapp_local.conf.sample file that is nearly
identical to myapp.conf. However, most values are blank or are "hint
values" like /path/to/foo. All lines are commented out. A dev, tester,
IT person, deployer, etc. copies this file to myapp_local.conf,
uncomments and sets values appropriately for the environment. A dev may
use it simply to swap out which DB she's pointing to when she needs to
work against a different data set.
No myapp_local.conf is committed with the project code in this scheme,
so the project can be deployed (and updated) without smashing the
existing local conf. Any updates to the conf are noted in a
RELEASE_NOTES file that is consulted during deployment (planning).
I hope this gives you some config management ideas to play around with.
Cheers,
--Trevor
More information about the DBIx-Class
mailing list