Ответ 1
Это файл db/schema.rb
. Если у вас есть только структурные изменения в ваших миграциях, вы сможете запустить rake db:schema:load
, а не запускать rake db:migrate
, чтобы получить абсолютную структуру для ваших таблиц.
Я работаю над развертыванием моего первого приложения Rails прямо сейчас, и где-то на этом пути я портил миграцию. Когда я пытаюсь вытащить свое приложение на рабочий сервер и запустил rake db:migrate
, он не смог с ошибкой.
Теперь, я слишком ленив, чтобы работать через свои миграции индивидуально, чтобы узнать, что пошло не так, поэтому я стараюсь избегать этого. Учитывая, что моя текущая база данных разработки работает очень хорошо, есть ли способ "сгладить" текущую схему в единую комплексную миграцию?
Я понимаю, что это неряшливо, и я понимаю, что я, вероятно, сделал тупое дело, чтобы сломать цепочку миграции в первую очередь. (Я, вероятно, отредактировал схему базы данных прямо где-то, что я теперь понимаю, это не-нет.) Это довольно маленький проект, хотя я и по сути является единственным разработчиком, поэтому мне удобно подметать эту проблему под ковром если возможно.
Есть ли способ сделать это?
Спасибо, что предоставили вам свои знания.
Это файл db/schema.rb
. Если у вас есть только структурные изменения в ваших миграциях, вы сможете запустить rake db:schema:load
, а не запускать rake db:migrate
, чтобы получить абсолютную структуру для ваших таблиц.
Если вы отредактировали схему непосредственно, вам нужно будет запустить:
rake db:schema:dump
Это займет все, что находится в базе данных, и создать файл schema.rb. Затем вы можете запустить rake db: schema: загрузить в любое время. Однако это будет означать, что ваши миграции все еще плохие. Вы можете удалить все из них и воссоздать их из файла schema.rb.