Я столкнулся с вашим вопросом сегодня, когда у меня была похожая проблема, и я могу объяснить, что происходит.
Выполнение миграции Rails на Heroku не приводит к автоматическому перезапуску приложения, поэтому ваш новый код может видеть старый вид базы данных через существующее соединение с базой данных. Это может вызвать странное поведение (например, доступ к столбцу, который не существовал до выполнения миграции).
Ручной перезапуск приложения приведет к его повторному подключению к БД и просмотру изменений.
Откат или повторное развертывание также приведет к перезапуску приложения и повторному подключению к базе данных.
Просто не забудьте перезапустить ваше приложение после запуска rails-миграции.