diff --git a/CHANGELOG.md b/CHANGELOG.md index 1b15377..db78d3c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,6 @@ # v0.9.3 - Update dependencies +- Add pack lot number to search # v0.9.2 - Add lot number to packs diff --git a/priv/repo/migrations/20230415033450_add_pack_lot_number_to_search.exs b/priv/repo/migrations/20230415033450_add_pack_lot_number_to_search.exs new file mode 100644 index 0000000..43c5ac6 --- /dev/null +++ b/priv/repo/migrations/20230415033450_add_pack_lot_number_to_search.exs @@ -0,0 +1,34 @@ +defmodule Cannery.Repo.Migrations.AddPackLotNumberToSearch do + use Ecto.Migration + + def up do + execute "ALTER TABLE packs DROP COLUMN search" + + execute """ + ALTER TABLE packs + ADD COLUMN search tsvector + GENERATED ALWAYS AS ( + setweight(to_tsvector('english', coalesce("notes", '')), 'A') || + setweight(to_tsvector('english', coalesce("lot_number", '')), 'A') || + setweight(to_tsvector('english', immutable_to_string("price_paid", '')), 'B') || + setweight(to_tsvector('english', immutable_to_string("purchased_on", '')), 'B') || + setweight(to_tsvector('english', immutable_to_string("count", '')), 'C') + ) STORED + """ + end + + def down do + execute "ALTER TABLE packs DROP COLUMN search" + + execute """ + ALTER TABLE packs + ADD COLUMN search tsvector + GENERATED ALWAYS AS ( + setweight(to_tsvector('english', coalesce("notes", '')), 'A') || + setweight(to_tsvector('english', immutable_to_string("price_paid", '')), 'B') || + setweight(to_tsvector('english', immutable_to_string("purchased_on", '')), 'B') || + setweight(to_tsvector('english', immutable_to_string("count", '')), 'C') + ) STORED + """ + end +end