import { MigrationInterface, QueryRunner } from 'typeorm'; export class AddPageUpdateHistoryTrigger1651992866220 implements MigrationInterface { public async up(queryRunner: QueryRunner): Promise { await queryRunner.query(` CREATE OR REPLACE FUNCTION update_page_history () RETURNS TRIGGER AS $$ BEGIN IF OLD IS NULL OR NEW.price <> OLD.price THEN INSERT INTO page_update_history ("pageId", price) VALUES (NEW.id, NEW.price); END IF; RETURN NEW; END; $$ LANGUAGE plpgsql; `); await queryRunner.query(` CREATE TRIGGER update_page_history_trigger AFTER INSERT OR UPDATE ON pages FOR EACH ROW EXECUTE PROCEDURE update_page_history (); `); } public async down(queryRunner: QueryRunner): Promise { await queryRunner.query(` DROP TRIGGER update_page_history_trigger ON pages; `); await queryRunner.query(` DROP FUNCTION update_page_history (); `); } }