Какой хороший способ очистить мои миграции в Rails?

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

Поиск будет быстрее.

Любой мой config/db не будет длиться 4000 пикселей.

Ответ 1

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

Однако в других ответах следует упомянуть существующий инструмент или драгоценный камень для этого.

Ответ 2

Удалите файлы миграции после переноса серверов. Если вы хотите начать с нового развертывания, запустите rake db:schema:load или rake db:setup. Вам не следует повторно запускать все ваши миграции, как описано здесь.

Ответ 3

Вам не нужно постоянно переносить свои миграции, вы можете их удалить, как только вы уверены, что вам больше не нужны. Просто зайдите в свой каталог db/migrate/ и удалите миграции, которые старше, например, через пару месяцев.

Пока все миграции, которые вы хотите удалить, были применены повсюду (т.е. разработка и производство), тогда вам больше не нужны (если вы не захотите вернуться назад). Действительно, миграция не предназначена для постоянных файлов, они просто рядом, чтобы вы от A до B, а затем они просто являются багажом.

Ответ 4

Учитывая, что ни один из ответов не упоминает об этом, это камень, который выполняет эту работу: https://github.com/jalkoby/squasher

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

up     <timestamp>  ********** NO FILE **********

при запуске rake db:migrate:status.