Какой хороший способ очистить мои миграции в 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
.