PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Erro do Postgres com Sinatra/Haml/DataMapper no Heroku


Parece que post_id é do tipo TEXT em vez de INTEGER. Para corrigir isso, você precisa alterar o tipo de dados. Isso foi alterado na versão 8.3, a versão mais antiga tem uma conversão implícita. Você pode dizer ao PostgreSQL para fazer isso:
CREATE FUNCTION pg_catalog.text(integer) RETURNS text STRICT IMMUTABLE LANGUAGE SQL AS 'SELECT textin(int4out($1));';
CREATE CAST (integer AS text) WITH FUNCTION pg_catalog.text(integer) AS IMPLICIT;

CREATE FUNCTION pg_catalog.text(smallint) RETURNS text STRICT IMMUTABLE LANGUAGE SQL AS 'SELECT textin(int2out($1));';
CREATE CAST (smallint AS text) WITH FUNCTION pg_catalog.text(smallint) AS IMPLICIT;

CREATE FUNCTION pg_catalog.text(bigint) RETURNS text STRICT IMMUTABLE LANGUAGE SQL AS 'SELECT textin(int8out($1));';
CREATE CAST (bigint AS text) WITH FUNCTION pg_catalog.text(bigint) AS IMPLICIT;

Veja também http://wiki.postgresql.org/wiki/Image :Pg83-implicit-casts.sql