Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask
 
PerlMonks  

Re: Storing config data - RDBMS vs File?

by dragonchild (Archbishop)
on Sep 27, 2004 at 17:13 UTC ( [id://394256]=note: print w/replies, xml ) Need Help??


in reply to Storing config data - RDBMS vs File?

hattmoward made the very point I was going to make - how are you going to connect to your database?

There's an additional point, too. How can you trust that the configuration data in your database is unchanged? Most (nearly all) schemas don't audit themselves. This means that data can be changed and, short of a DBA going back through the redo logs, you would have no chance of detecting that. (And, frankly, very little chance at that, given the size and inscrutability of most redo logs.)

However, you can detect changes to a configuration file comparison with your source control. Thus, you can do something like cvs diff -r last_version_to_be_released config.ini and be sure nothing has changed. (Well, someone could mess with your CVS revisions, but that would require hacking root. After that, why would they stop at your CVS?)

If you're looking for a good config-file module, I'd take a look at Config::ApacheFormat. I'm using it right now in a production environment and it works great.

Being right, does not endow the right to be rude; politeness costs nothing.
Being unknowing, is not the same as being stupid.
Expressing a contrary opinion, whether to the individual or the group, is more often a sign of deeper thought than of cantankerous belligerence.
Do not mistake your goals as the only goals; your opinion as the only opinion; your confidence as correctness. Saying you know better is not the same as explaining you know better.

I shouldn't have to say this, but any code, unless otherwise stated, is untested

Replies are listed 'Best First'.
Re^2: Storing config data - RDBMS vs File?
by Seumas (Curate) on Sep 27, 2004 at 17:22 UTC
    The only reason I've used the database for my configuration data all this time is that it seemed better to make one query to a databse that I was already connected to each time a user accessed a page than to load up the extra code of a config file parser, access the file, parse the file and then move on every time.

    This wouldn't be an issue with mod_perl, obviously, but I'm not using mod_perl for my project, yet. I don't have the experience or confidance to do so, though I'm working on it.
      my $config = Config::ApacheFormat->new; $config->read( '/path/to/config.ini' ); my $block = $config->block( Database => $database_name ); my $dbh = DBI->connect( (map { $block->get( $_ ) || '' } qw( sid user password )), );

      What's so hard about that? And, before you worry about loading the code of a config fileparser ... compare that with the cost of performing an extra database query. I think you'll be (un)pleasantly surprised.

      Or, think about it this way - when so many people are telling you something, isn't it worth a day to test it out?

      Being right, does not endow the right to be rude; politeness costs nothing.
      Being unknowing, is not the same as being stupid.
      Expressing a contrary opinion, whether to the individual or the group, is more often a sign of deeper thought than of cantankerous belligerence.
      Do not mistake your goals as the only goals; your opinion as the only opinion; your confidence as correctness. Saying you know better is not the same as explaining you know better.

      I shouldn't have to say this, but any code, unless otherwise stated, is untested

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://394256]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others contemplating the Monastery: (6)
As of 2024-03-28 11:26 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found