Files
mercadodevida/project/migrations/026_fuzzy_search.cjs
2026-08-19 07:17:14 +02:00

45 lines
1.3 KiB
JavaScript

/**
* Migration 026: Fuzzy search with trigram similarity (pg_trgm).
*
* This is an ordered node-pg-migrate migration. It must not open its own
* connection or execute work while the migration module is being loaded.
*/
/** @param {import('node-pg-migrate').MigrationBuilder} pgm */
exports.up = (pgm) => {
pgm.sql('CREATE EXTENSION IF NOT EXISTS pg_trgm');
pgm.sql(`
CREATE INDEX IF NOT EXISTS catalog_products_name_trgm_idx
ON catalog_products
USING GIN (name gin_trgm_ops)
`);
pgm.sql(`
CREATE INDEX IF NOT EXISTS catalog_products_description_trgm_idx
ON catalog_products
USING GIN (description gin_trgm_ops)
`);
pgm.sql(`
CREATE INDEX IF NOT EXISTS brands_brands_name_trgm_idx
ON brands_brands
USING GIN (name gin_trgm_ops)
`);
pgm.sql(`
CREATE INDEX IF NOT EXISTS categories_categories_name_trgm_idx
ON categories_categories
USING GIN (name gin_trgm_ops)
`);
};
/** @param {import('node-pg-migrate').MigrationBuilder} pgm */
exports.down = (pgm) => {
pgm.sql('DROP INDEX IF EXISTS categories_categories_name_trgm_idx');
pgm.sql('DROP INDEX IF EXISTS brands_brands_name_trgm_idx');
pgm.sql('DROP INDEX IF EXISTS catalog_products_description_trgm_idx');
pgm.sql('DROP INDEX IF EXISTS catalog_products_name_trgm_idx');
pgm.sql('DROP EXTENSION IF EXISTS pg_trgm');
};