Ваше сообщение об ошибке исходит от PostgreSQL, но вы разрабатываете с использованием MySQL.
Это очень хорошая идея использовать одну и ту же технологию баз данных при разработке и производстве (а также при тестировании, подготовке и любых других средах, которые у вас могут быть). Это сведет к минимуму неожиданности при переходе из одной среды в другую, например, когда вы развертываете свой код в Heroku.
Я рекомендую один из следующих двух вариантов действий:
Переключитесь на PostgreSQL на своей машине разработки.
Это, вероятно, приведет к локальному сбою миграции, но это хорошо! Теперь вы можете устранять и устранять ошибки в разработке, что гораздо лучше, чем устранять проблемы, возникающие в работе.
В этом случае проблема связана с текущим типом столбца price
. PostgreSQL не может конвертировать этот тип данных в число с плавающей точкой, и нужна ваша помощь .
Переключиться на MySQL на Heroku.
Heroku использует PostgreSQL из коробки, но также поддерживает многие другие хранилища данных . Выберите одного из поставщиков MySQL и используйте его вместо PostgreSQL.
В обоих случаях попробуйте сопоставить номер версии поставщика базы данных.
Любой из них будет работать, но мой предпочтение strong будет первым вариантом. MySQL слишком быстр и свободен с типами данных на мой взгляд. Если вы решите использовать MySQL, внимательно посмотрите на свои данные до и после локального запуска миграции, чтобы убедиться, что она работает «правильно».
Редактировать: Похоже, вы на самом деле используете SQLite на локальном компьютере. Это не сработает на Heroku из-за его эфемерной файловой системы . Вам придется использовать базу данных клиент-сервер в Heroku, и я настоятельно рекомендую использовать ту же базу данных на локальном компьютере для разработки.