Я создал миграцию:
class AddFormCounterToUsers < ActiveRecord::Migration[5.2]
def change
add_column :users, :form_count, :integer, default: 0
end
end
Я запустил rails db:migrate
, но вскоре понял, что неправильно переименовал столбец.Поэтому я запустил git reset master --hard
- чтобы файл миграции был удален и schema.rb
был сброшен - и снова запустился:
class AddFormCounterToUsers < ActiveRecord::Migration[5.2]
def change
add_column :users, :forms_count, :integer, default: 0
end
end
Но когда я запустил rails db:migrate
на этот раз, не толькосоздан новый столбец, но также и старый.
t.integer "form_count", default: 0
t.integer "forms_count", default: 0
Ух?Поэтому я запустил rails db:rollback
, чтобы посмотреть, сработает ли это.Но это приводит к ошибке: No migration with version number 20181025092233.
Поскольку я не зафиксировал этот файл, я думаю, что нет способа восстановить его.
Где и почему эта миграция сохраняется?Какова лучшая практика при решении удалить и повторить миграцию?Какой лучший выход из этого рассола?Есть ли другой способ, кроме запуска rails db:reset
?(Я использую Postgres.)