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