Сам код прост.
Note.delete_all :type => 'short_note'
(Если у примечаний есть обратные вызовы уничтожения, вам нужно вместо этого запустить destroy_all
. Это медленнее, потому что они удаляются по одному, ноиногда может обеспечить лучшую целостность данных.)
Тем не менее, я думаю, что вы немного больше беспокоитесь о нисходящей миграции, чем о восходящей миграции.Это необратимое преобразование по своей природе.Ответ на этот конкретный вопрос состоит в том, что ваша миграция должна вызывать исключение ActiveRecord::IrreversibleMigration
.
Однако всякий раз, когда вы пишете необратимую миграцию, важно учитывать, почему вы это делаете.В зависимости от вашей ситуации, возможно, более уместно просто выполнить эту конкретную команду в консоли при развертывании на рабочем месте, чем сделать эту миграцию частью самого определения вашего приложения.