Итак, в какой-то момент процесса разработки я добавил переход, чтобы добавить столбец в таблицу моих пользователей. В этой колонке добавлен атрибут «доллары». После этого я решил удалить атрибут «доллары», написав удаление миграции. Позднее я случайно удалил первоначальную миграцию, чтобы добавить доллары, поэтому для решения ошибок, которые я получал при запуске db: migrate в моей локальной базе данных SQLite, я также удалил миграцию RemoveDollarsFromUsers
.Удаленные миграции Ruby on Rails продолжаются на Heroku
Видимо, это решило проблему, пока я не развернулся к героку. После перезагрузки базы данных с heroku pg:reset DATABASE
я побежал heroku run rake db:migrate
и получил сообщение об ошибке, что «доллары» не были атрибутом пользователя. Файл журнала показал, что он попытался запустить миграцию RemoveDollarsFromUsers, которую я ранее удалил.
Итак, я дважды проверил, что мое репо было актуальным, и это было, а затем я попытался полностью сбросить и запустить новое приложение на героку, думая, что героику вспомнилось о старых миграциях. С новым приложением heroku я получил ту же ошибку, хотя репо, которое я нажимаю, не должно иметь никаких ссылок на старые файлы миграции.
Это проблема с git? единственное, что я могу придумать, это то, что git ставит старую версию с миграцией RemoveDollarsFromUsers, иначе как герой может даже знать об этом?
Если вы делаете 'git status', что вы получаете? Вы уверены, что после удаления файла, который вы совершили это удаление? – fmendez
Извините, это мой первый раз, когда я использую этот сайт, и я не могу понять, как это сделать. Когда я запускаю статус git, он в основном дает мне список вещей, которые не были совершены, включая удаление файла, о котором я говорил. Так ясно, что вы на что-то. Однако даже после добавления git. и git commit, он по-прежнему говорит, что эти файлы не были совершены –
Сначала вам нужно нажать на код героку. После нажатия попробуйте сбросить db и затем выполнить миграцию. – jvnill