bibliophile has asked for the wisdom of the Perl Monks concerning the following question:
I find myself in a design quandry, and seek enlightenment...
I've built a database-abstraction-layer module for handling a particular industry-specific data type (bibliographic MARC records). This abstraction layer, of course, uses DBI under the hood.
I've built a few different modules that the abstraction layer would use to connect to different back-ends (MySQL, Postgres, flat files,...). These use DBD.
This is all so that an application can just say "save this horribly complicated binary data thingy" without worrying about it. It works really well.
Right now, I'm hard-coding into the abstraction layer which particular back-end interface to use. Eventually I'll have that pulled from a config file of some sort.
I've got a bazillion tests - abstraction layer and back-end modules.
But here's my question (finally!): Is there some standard way figuring out (at "make" time? Before then?) which back-end the user needs/wants? (eg: if they have both Postgres and MySQL installed, but only have rights to use one or the other).
The second part of this question is for me as a developer - I've got all of the various databases/data stores running, and want to have the "make / make test" run against all of them. Again, right now I manually change (in the abstraction layer) which backend gets used, wrap the unused back-end tests in skip blocks, and then re-run the make. Is there a better way? How would you do it?
Any help you could give would be... well... helpful. :-)
Update:Thanks, all, for your thoughts and your reasoning - it is much appreciated!
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: Module configuration for user vs. developer
by Tanktalus (Canon) on May 31, 2006 at 15:08 UTC | |
by bibliophile (Prior) on May 31, 2006 at 15:32 UTC | |
by Tanktalus (Canon) on May 31, 2006 at 15:46 UTC | |
by bibliophile (Prior) on May 31, 2006 at 16:05 UTC | |
Re: Module configuration for user vs. developer
by Joost (Canon) on May 31, 2006 at 15:24 UTC | |
by bibliophile (Prior) on May 31, 2006 at 15:42 UTC | |
Re: Module configuration for user vs. developer
by herveus (Prior) on May 31, 2006 at 15:10 UTC | |
by bibliophile (Prior) on May 31, 2006 at 15:38 UTC |