PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Erreur Postgres avec Sinatra/Haml/DataMapper sur Heroku

Il semble que post_id soit de type TEXT au lieu de INTEGER. Pour résoudre ce problème, vous devez modifier le type de données. Cela a été modifié dans la version 8.3, les anciennes versions ont un cast implicite. Vous pouvez demander à PostgreSQL de le faire :

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;

Voir aussi http://wiki.postgresql.org/wiki/Image :Pg83-implicit-casts.sql