PostgreSQL не использует IS
или IS NOT
для общих сравнений, вы хотите, чтобы <>
или !=
:
where("event_id = ? AND status <> ?", event.id, "approved")
<>
также работал в MySQL и SQLite, кромеесли вы хотите сравнить с NULL, тогда вы должны использовать IS NULL
или IS NOT NULL
везде.
IS
используется для специальных сравнений, таких как IS NULL
и IS DISTINCT FROM
, см. Операторы сравнения раздел руководства PostgreSQL для получения более подробной информации.
Если вы планируете развертывание на Heroku, вам действительно следует разрабатывать поверх PostgreSQL (8,3 для общей базы данных, 9,0 дляпосвященный).PostgreSQL немного строже, чем SQLite (и MySQL), и никакая ORM не может полностью оградить вас от различий между базами данных.Поведение GROUP BY является еще одной распространенной проблемой при переходе с SQLite / MySQL на PostgreSQL, поэтому вы можете просмотреть все группы;также проверьте, как вы справляетесь со строками, которые слишком длинны для ваших столбцов varchar
, AFAIK SQLite игнорирует ваши ограничения по размеру, но PostgreSQL будет громко жаловаться, если вы попытаетесь превысить размер столбца (а MySQL будет обрезать ваши данные с помощью простого предупреждения, если тольковы перевели свой сервер в строгий режим).