Следует ли переносить рельсы отдельно от schema.rb? - PullRequest
3 голосов
/ 16 апреля 2011

После генерации / записи / запуска миграции базы данных Rails следует ли отдельно переносить файл миграции и db/schema.rb на управление версиями?

Ответы [ 2 ]

3 голосов
/ 18 апреля 2011

Некоторые грабли, которые должны быть похожими, могут вести себя по-разному, если schema.rb не синхронизируется с миграциями, например:

После создания базы данных, если вы запустите:

rake db:migrate - он запустит миграцию

rake db:schema:load - он будет использовать schema.rb

Сброс базы данных:

rake db:migrate:reset - воссоздает работающую базу данныхмиграции по одной.

rake db:reset - воссоздает базу данных, используя текущую версию schema.rb

В обоих случаях, независимо от того, какую задачу вы выбираете, результат должен быть одинаковым.Обычно использование schema.rb является предпочтительным, поскольку оно создает базу данных за один шаг, вместо передачи для каждой отдельной миграции, но если это не та же версия, что и для миграций, результаты будут другими.

3 голосов
/ 16 апреля 2011

Большинство людей, которых я видел, фиксируют их в одном коммите.

Для меня это имеет больше смысла.Это гарантирует, что запуск rake db:migrate в любой ревизии не изменит db/schema.rb.

...