How do you version your database schema?

mysql, schema, sql, versioning

Solution

See

Is there a version control system for database structure changes?

How do I version my MS SQL database in SVN?

and Jeff's article

Get Your Database Under Version Control

I feel your pain, and I wish there were a better answer. This might be closer to what you were looking for.

Mechanisms for tracking DB schema changes

Generally, I feel there is no adequate, accepted solution to this, and I roll my own in this area.

Problem

How do you prepare your SQL deltas? do you manually save each schema-changing SQL to a delta folder, or do you have some kind of an automated diffing process? I am interested in conventions for versioning database schema along with the source code. Perhaps a pre-commit hook that diffs the schema? Also, what options for diffing deltas exist aside from DbDeploy? EDIT: seeing the answers I would like to clarify that I am familiar with the standard scheme for running a database migration using deltas. My question is about creating the deltas themselves, preferably automatically. Also, the versioning is for PHP and MySQL if it makes a difference. (No Ruby solutions please).

Original source

Related problems