Что ж, стандартный файл schema.rb
для Rails 2 имеет это в конце блока комментария вверху файла:
# It's strongly recommended to check this file into your version control system.
Рельсы 3 schema.rb
, которые я носил вокруг, говорят о том же. Я думаю, что комментарий говорит обо всем.
Обновление в ответ на комментарии:
Да, ошибки могут быть сделаны, и вы можете получить противоречивые изменения и ошибки, которые повредят ваш schema.rb
, но именно поэтому вы хотите, чтобы он находился под контролем версий, контроль версий позволяет вам отслеживать все и создавать резервные копии при необходимости. Во всем дереве исходного кода есть только одна вещь, которая определяет схему базы данных, и это schema.rb
. Ваша схема базы данных является критически важным артефактом, и все, что важно, необходимо отслеживать в системе контроля версий.
Любые проблемы обновления / слияния с schema.rb
должны решаться просто путем сортировки конфликтующих миграций, чтобы schema.rb
исправлялся как побочный эффект от исправления реальной проблемы.
Да, schema.rb
- это сгенерированный файл, но он генерируется только в том смысле, что ваш текстовый редактор создает файл модели pancakes.rb
или генерируется неотредактированный файл скаффолда.
Да, вы можете перестроить файл schema.rb
, создав новую базу данных и выполнив все ваши миграции. Но вы должны время от времени очищать ваши старые миграции, чтобы избежать необходимости проверять сотни файлов миграции каждый раз, когда вы rake db:migrate
, так что «перестроить и запустить все миграции» часто не вариант в высокоактивном проекте.