Подтвердить что ты не робот

Удаление старых файлов миграции в приложении Rails

Разрешено ли удалять (или архивировать) старые файлы миграции в приложении Rails, если схема стабильна?

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

4b9b3361

Ответ 1

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

Миграции не являются авторитетным источником для вашей схемы базы данных. Эта роль относится либо к db/schema.rb, либо к файлу SQL, который генерирует Active Record, исследуя базу данных. Они не предназначены для редактирования, они просто представляют текущее состояние базы данных.

Нет необходимости (и подвержено ошибкам) ​​развертывать новый экземпляр приложения, переигрывая всю историю миграции. Гораздо проще и быстрее просто загружать в базу данных описание текущей схемы, которая находится в файле schema.rb или в файле SQL.
Этот файл должен быть версией и храниться в исходном элементе управления.

Чтобы настроить автоматическое создание schema.rb, измените config/application.rb с помощью параметра config.active_record.schema_format, который может быть: ruby ​​или: sql. Если: ruby ​​выбран, схема сохраняется в db/schema.rb. Если: sql выбран, схема выгружается в собственном формате SQL вашей базы данных.

Ответ 2

Вы можете удалить свои старые миграции. После того, как вы это сделаете, при настройке приложения вам нужно будет запустить:

rake db:schema:load

Вместо:

rake db:migrate

Ответ 3

вот что я сделал, я обнаружил, что последняя версия перенесена в производственную ActiveRecord::SchemaMigration.last.version и удалил все миграции до этого в моем исходном коде.

не лучшим образом, но я find db/migrate -type f, скопировал список файлов до последней версии и pbpaste | rm pbpaste | rm (MacOS).