PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Errore Postgres con Sinatra/Haml/DataMapper su Heroku

Sembra che post_id sia di tipo TEXT invece di INTEGER. Per risolvere questo problema, devi cambiare il tipo di dati. Questo è stato modificato nella versione 8.3, le versioni precedenti hanno un cast implicito. Puoi dire a PostgreSQL di farlo:

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;

Vedi anche http://wiki.postgresql.org/wiki/Image :Pg83-implicit-casts.sql