свернуть предыдущие рельсовые миграции - PullRequest
3 голосов
/ 18 декабря 2011

Можно ли создать одну миграцию из всех предыдущих, чтобы она имела эффект rake db:schema:load?У меня много миграций, которые бесполезны (переходя от одной модели к другой).

Ответы [ 2 ]

1 голос
/ 18 декабря 2011

Вы можете взять код из db/schema.rb, который будет сгенерирован, и выполнить миграцию из него - удалить старые миграции.

Однако Я рекомендую вам несделайте это .

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

0 голосов
/ 18 декабря 2011

Это зависит от вашего проекта. Если вы единственный человек в этом, и вы знаете, что можете просто отбросить некоторые миграции, тогда, вероятно, это нормально.

Но это только в том случае, если у вас есть что-то вроде create_posts, а затем remove_posts немного позже.

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

...