aprs.me/priv/repo/migrations/20260505000000_fix_decrement_packet_sequence_trigger.exs
Graham McIntire c711caff4e
Remove AppSignal; fix decrement trigger and stale test assertions
- Delete config/appsignal.exs (was never wired into mix.exs or any
  other config file)
- Migration: fix decrement_packet_sequence trigger to handle the case
  where currval() hasn't been called in the current DB session, matching
  the same exception handling already present in get_packet_count()
- Fix get_historical_packet_count test: invalid non-list bounds are
  silently ignored (no error), so assert is_integer not count == 0
- Add Repo.delete_all(Packet) setup blocks in PacketsOldestTest and
  PacketConsumerTest to clear any committed DB state before tests that
  depend on an empty packets table
2026-05-05 13:20:58 -05:00

35 lines
897 B
Elixir

defmodule Aprsme.Repo.Migrations.FixDecrementPacketSequenceTrigger do
use Ecto.Migration
def up do
execute """
CREATE OR REPLACE FUNCTION decrement_packet_sequence()
RETURNS TRIGGER AS $$
DECLARE
current_val BIGINT;
BEGIN
BEGIN
current_val := currval('packet_count_seq');
EXCEPTION
WHEN object_not_in_prerequisite_state THEN
SELECT last_value INTO current_val FROM packet_count_seq;
END;
PERFORM setval('packet_count_seq', GREATEST(0, current_val - 1), true);
RETURN OLD;
END;
$$ LANGUAGE plpgsql;
"""
end
def down do
execute """
CREATE OR REPLACE FUNCTION decrement_packet_sequence()
RETURNS TRIGGER AS $$
BEGIN
PERFORM setval('packet_count_seq', GREATEST(0, currval('packet_count_seq') - 1), true);
RETURN OLD;
END;
$$ LANGUAGE plpgsql;
"""
end
end