Developers Notes

My Journey as Software Architect

Sequelize Migration to create Postgres Function

if you need to make  some sql function, you can use something like this.

 

const query = `CREATE OR REPLACE FUNCTION "public"."last_day"(date)
RETURNS "pg_catalog"."date" AS $BODY$
SELECT (date_trunc('MONTH', $1) + INTERVAL '1 MONTH - 1 day')::DATE;
$BODY$
LANGUAGE sql IMMUTABLE STRICT
COST 100
`;

module.exports = {
up: (queryInterface, Sequelize) => queryInterface.sequelize.query(query),

down: (queryInterface, Sequelize) =>
queryInterface.sequelize.query('DROP FUNCTION "public"."last_day"(date)'),
};
 
make sure to include  argument data type on drop function.
 
references: