Как перенести логическое поле в MySQL в PostgreSQL в Heroku? - PullRequest
0 голосов
/ 23 августа 2011

У меня есть приложение, работающее с MySQL на моей локальной машине.В Rails есть поле, которое я определяю как логическое, которое в MySQL представляет 0 или 1.

Я сейчас пытаюсь перейти на Heroku, который использует PostgreSQL.После отправки кода и базы данных в Heroku приложение не может работать.

Появляется сообщение об ошибке.

ActiveRecord::StatementInvalid (PGError: ERROR:  operator does not exist: boolean = integer

Как это исправить?

Спасибо всем.

1 Ответ

3 голосов
/ 23 августа 2011

Это потому, что MySQL использует TinyInt (1) для хранения логических атрибутов, тогда как PostgreSQL имеет собственный логический тип.

Лучше использовать инструмент миграции, такой как

https://github.com/maxlapshin/mysql2postgres

, который решает эти проблемы.

Настройка локальной базы данных postgres.Миграция с MySQL на вашу локальную базу данных Postgres.Затем нажмите из своей локальной базы данных postgres в Heroku с помощью касаний.

Кроме того, убедитесь, что вы нигде в коде не использовали y или n, так как эти значения относятся к MySQL

ОБНОВЛЕНИЕ: Прежде чем сделать что-либо из вышеперечисленного, проверьте это http://devcenter.heroku.com/articles/database#common_issues_migrating_to_postgresql

...