Некоторые грабли, которые должны быть похожими, могут вести себя по-разному, если schema.rb
не синхронизируется с миграциями, например:
После создания базы данных, если вы запустите:
rake db:migrate
- он запустит миграцию
rake db:schema:load
- он будет использовать schema.rb
Сброс базы данных:
rake db:migrate:reset
- воссоздает работающую базу данныхмиграции по одной.
rake db:reset
- воссоздает базу данных, используя текущую версию schema.rb
В обоих случаях, независимо от того, какую задачу вы выбираете, результат должен быть одинаковым.Обычно использование schema.rb
является предпочтительным, поскольку оно создает базу данных за один шаг, вместо передачи для каждой отдельной миграции, но если это не та же версия, что и для миграций, результаты будут другими.