Способ "сгладить" миграции Rails?

Я работаю над развертыванием моего первого приложения Rails прямо сейчас, и где-то на этом пути я портил миграцию. Когда я пытаюсь вытащить свое приложение на рабочий сервер и запустил rake db:migrate, он не смог с ошибкой.

Теперь, я слишком ленив, чтобы работать через свои миграции индивидуально, чтобы узнать, что пошло не так, поэтому я стараюсь избегать этого. Учитывая, что моя текущая база данных разработки работает очень хорошо, есть ли способ "сгладить" текущую схему в единую комплексную миграцию?

Я понимаю, что это неряшливо, и я понимаю, что я, вероятно, сделал тупое дело, чтобы сломать цепочку миграции в первую очередь. (Я, вероятно, отредактировал схему базы данных прямо где-то, что я теперь понимаю, это не-нет.) Это довольно маленький проект, хотя я и по сути является единственным разработчиком, поэтому мне удобно подметать эту проблему под ковром если возможно.

Есть ли способ сделать это?

Спасибо, что предоставили вам свои знания.

Ответ 1

Это файл db/schema.rb. Если у вас есть только структурные изменения в ваших миграциях, вы сможете запустить rake db:schema:load, а не запускать rake db:migrate, чтобы получить абсолютную структуру для ваших таблиц.

Ответ 2

Если вы отредактировали схему непосредственно, вам нужно будет запустить:

rake db:schema:dump

Это займет все, что находится в базе данных, и создать файл schema.rb. Затем вы можете запустить rake db: schema: загрузить в любое время. Однако это будет означать, что ваши миграции все еще плохие. Вы можете удалить все из них и воссоздать их из файла schema.rb.