Have you ever worked in a place that has multiple database environments (dev, test, qa, etc.) that promoted configuration information between the environments? If so, how was the promotion performed?
Yes, and sometimes things did get out of sync, I will admit.
I'm glad you admit it. Because what you just said is that you don't have a solution for the problem that Scott is talking about, and you had bugs because of it.
Not possible bugs. Not woulda, shoulda, couldas. But actual maintainance problems. That you didn't figure out a solution to.
Now all that you have to do is see how, when you are using version control anyways, that problem is eliminated.
But the real problem is that we are dealing with 2 different kinds of databases: a file system (hierarchical) database, and a relational database. Microsoft, for one, is seriously thinking about merging them so that they will not be different things. Thus, migrating files (if we still call them that) and migrating config data will be the same thing.
No, that isn't the real problem. The real problem is that we have data of different types. (Note that code itself is just data.) Different types of data move in separate ways, and so should be maintained separately.
Application data generally does not move, people on production generate production data. You don't want to "promote" test data to production.
Configuration data and code data tend to move in the same way at the same time. Therefore putting them together in revision control makes sense.
The standard development toolkit includes things like revision control systems, editors, searching utilities, make, etc. As long as the state of the art for these is not as well-developed on the database as on regular filesystems, that is an argument for using filesystems for code and configuration data.
Convergence is coming! You flat-file-tree-and-code lovers will be the New Luddites and I will be playing a nano-violin to soothe your sorry soul.
If the standard development toolkit is all available for data backed by relational databases, few developers will notice or care when they switch. You still like having configuration information under revision control for the same reasons that applied before convergence.
To the extent that Microsoft breaks that toolkit, their environment, convergence or no convergence, remains inferior for development purposes.
Cheers,
Ben