From 9e282b1d1086409e28c4a3798d8b1f5a9688d65e Mon Sep 17 00:00:00 2001 From: Hazelnoot Date: Sun, 25 May 2025 12:43:43 -0400 Subject: [PATCH] fix arrays in migration add_instance_block_columns --- ...748105111513-add_instance_block_columns.js | 28 ++++++++----------- 1 file changed, 12 insertions(+), 16 deletions(-) diff --git a/packages/backend/migration/1748105111513-add_instance_block_columns.js b/packages/backend/migration/1748105111513-add_instance_block_columns.js index c9087604e5..6e3d78d5e8 100644 --- a/packages/backend/migration/1748105111513-add_instance_block_columns.js +++ b/packages/backend/migration/1748105111513-add_instance_block_columns.js @@ -37,32 +37,32 @@ export class AddInstanceBlockColumns1748105111513 { // Blocked hosts if (meta.blockedHosts.length > 0) { - const pattern = buildPatterns(meta.blockedHosts); - await queryRunner.query(`UPDATE "instance" SET "isBlocked" = true WHERE ((lower(reverse("host")) || '.')::text) LIKE ANY ${pattern}`); + const patterns = buildPatterns(meta.blockedHosts); + await queryRunner.query(`UPDATE "instance" SET "isBlocked" = true WHERE ((lower(reverse("host")) || '.')::text) LIKE ANY ($1)`, [ patterns ]); } // Silenced hosts if (meta.silencedHosts.length > 0) { - const pattern = buildPatterns(meta.silencedHosts); - await queryRunner.query(`UPDATE "instance" SET "isSilenced" = true WHERE ((lower(reverse("host")) || '.')::text) LIKE ANY ${pattern}`); + const patterns = buildPatterns(meta.silencedHosts); + await queryRunner.query(`UPDATE "instance" SET "isSilenced" = true WHERE ((lower(reverse("host")) || '.')::text) LIKE ANY ($1)`, [ patterns ]); } // Media silenced hosts if (meta.mediaSilencedHosts.length > 0) { - const pattern = buildPatterns(meta.mediaSilencedHosts); - await queryRunner.query(`UPDATE "instance" SET "isMediaSilenced" = true WHERE ((lower(reverse("host")) || '.')::text) LIKE ANY ${pattern}`); + const patterns = buildPatterns(meta.mediaSilencedHosts); + await queryRunner.query(`UPDATE "instance" SET "isMediaSilenced" = true WHERE ((lower(reverse("host")) || '.')::text) LIKE ANY ($1)`, [ patterns ]); } // Allow-listed hosts if (meta.federationHosts.length > 0) { - const pattern = buildPatterns(meta.federationHosts); - await queryRunner.query(`UPDATE "instance" SET "isAllowListed" = true WHERE ((lower(reverse("host")) || '.')::text) LIKE ANY ${pattern}`); + const patterns = buildPatterns(meta.federationHosts); + await queryRunner.query(`UPDATE "instance" SET "isAllowListed" = true WHERE ((lower(reverse("host")) || '.')::text) LIKE ANY ($1)`, [ patterns ]); } // Bubbled hosts if (meta.bubbleInstances.length > 0) { - const pattern = buildPatterns(meta.bubbleInstances); - await queryRunner.query(`UPDATE "instance" SET "isBubbled" = true WHERE ((lower(reverse("host")) || '.')::text) LIKE ANY ${pattern}`); + const patterns = buildPatterns(meta.bubbleInstances); + await queryRunner.query(`UPDATE "instance" SET "isBubbled" = true WHERE ((lower(reverse("host")) || '.')::text) LIKE ANY ($1)`, [ patterns ]); } } } @@ -78,12 +78,8 @@ export class AddInstanceBlockColumns1748105111513 { /** * @param {string[]} input - * @returns {string} + * @returns {string[]} */ function buildPatterns(input) { - const strings = input - .map(i => i.toLowerCase().split('').reverse().join('') + '.%') - .map(i => `'${i}'`) - .join(', '); - return `(array[${strings}]::text[])`; + return input.map(i => i.toLowerCase().split('').reverse().join('') + '.%'); }