summaryrefslogtreecommitdiff
path: root/config/initializers/ensure_search_vector_trigger.rb
AgeCommit message (Collapse)Author
3 daysMake page_translations' search trigger self-installingerdgeist
search_vector is populated by a raw Postgres trigger created via execute() in a migration -- invisible to schema.rb, which only represents structure Rails understands. Any database rebuilt from schema.rb rather than replayed migrations (test, a fresh db:setup, disaster recovery) silently lost full-text search entirely, with no error -- NULL @@ anything is never true in Postgres. Page.ensure_search_vector_trigger!, called from an after_initialize initializer, reinstalls the trigger via CREATE OR REPLACE on every boot, in every environment. Idempotent and cheap.