Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses
 
PerlMonks  

comment on

( [id://3333]=superdoc: print w/replies, xml ) Need Help??
My strongly held opinion is that configuration information belongs in a file, under revision control.

If that configuration information has a good reason to go into a database, it should still be maintained in a file, under revision control, and then the database table should occasionally be reloaded from said file.

There are many reasons for this design choice. The key one is that sane organizations do not develop against their production database. Instead they have a separate development environment that they can work against, and then they have a release process into production. (Often this release process involves more databases, for instance you may have one devoted to QA, and another for load testing.) If you store the configuration in the database, this release process quickly becomes more complicated and risky. Furthermore the development process also runs into issues when people need to do things like change a configuration temporarily just to test something. (What if you don't change it back correctly?)

By contrast when the information is in a configuration file, under revision control, then necessary configuration changes get released in sync with the code that it is connected to. Furthermore a slew of development problems are now handled by your revision control system. You can ask, and answer, important questions such as, "Here's when we changed Y, that was after this problem started being reported, so it cannot be the cause."

This opinion is strong enough that I would rather not work with companies which make the design mistake of keeping configuration information in a database. Just as I would prefer not to work at an organization without a development environment, or which does not use revision control. (The latter two are more important than this design mistake though.)

UPDATE: s/avoid working/rather not work/ and added clarifying comment.


In reply to Re: Storing config data - RDBMS vs File? by tilly
in thread Storing config data - RDBMS vs File? by Seumas

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":



  • Are you posting in the right place? Check out Where do I post X? to know for sure.
  • Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
    <code> <a> <b> <big> <blockquote> <br /> <dd> <dl> <dt> <em> <font> <h1> <h2> <h3> <h4> <h5> <h6> <hr /> <i> <li> <nbsp> <ol> <p> <small> <strike> <strong> <sub> <sup> <table> <td> <th> <tr> <tt> <u> <ul>
  • Snippets of code should be wrapped in <code> tags not <pre> tags. In fact, <pre> tags should generally be avoided. If they must be used, extreme care should be taken to ensure that their contents do not have long lines (<70 chars), in order to prevent horizontal scrolling (and possible janitor intervention).
  • Want more info? How to link or How to display code and escape characters are good places to start.
Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others chanting in the Monastery: (9)
As of 2024-04-23 14:44 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found