Мне нравится, как это делает Джанго. Вы строите модели, и когда вы запускаете syncdb, он применяет созданные вами модели. Если вы добавляете модель, вам просто нужно снова запустить syncdb. Это было бы легко, если бы ваш скрипт компоновки выполнялся каждый раз, когда вы нажимали.
Проблема возникает, когда вам нужно изменить таблицу, которая уже сделана. Я не думаю, что syncdb справится с этим. Это потребует, чтобы вы вошли и вручную добавили таблицу, а также добавили свойство в модель. Возможно, вы захотите сделать версию этого утверждения. Модели всегда будут находиться под контролем версий, поэтому, если вам нужно, вы можете получить схему БД и запустить ее на новом компьютере без запуска сценариев SQL Еще одна проблема - отслеживание статических данных, которые вы всегда хотите получить в БД.
Скрипты Rails-миграции тоже довольно хороши.
Система управления версиями БД была бы великолепна, но я не знаю, что такое.