| 1 | -- SPDX-License-Identifier: AGPL-3.0-or-later |
| 2 | -- |
| 3 | -- Postgres extensions used by S28 search: |
| 4 | -- pg_trgm — trigram similarity for code identifiers and substring |
| 5 | -- match where the FTS tokenizer breaks down (camelCase, |
| 6 | -- snake_case, mixed-language code). |
| 7 | -- unaccent — strips Latin diacritics so "café" matches "cafe" in |
| 8 | -- human-name search. |
| 9 | -- |
| 10 | -- Both ship with PostgreSQL contrib; no external server required. |
| 11 | |
| 12 | -- +goose Up |
| 13 | CREATE EXTENSION IF NOT EXISTS pg_trgm; |
| 14 | CREATE EXTENSION IF NOT EXISTS unaccent; |
| 15 | |
| 16 | -- +goose Down |
| 17 | -- We don't drop the extensions on rollback — other migrations may |
| 18 | -- have started depending on them, and DROP EXTENSION cascades to |
| 19 | -- dependent objects. Leave them installed; the pure cost is one |
| 20 | -- catalog row each. |
| 21 |