Revision history for Test::PostgreSQL::v2

2.01 2026-02-27
     - Forgot to add: Test::DBIx::Class::SchemaManager::Trait::Testpostgresqlv2

2.00 2026-02-27
     [Incompatible Changes]
     - Complete rewrite. Not a drop-in replacement for Test::PostgreSQL.
       See Test::DBIx::Class::SchemaManager::Trait::Testpostgresqlv2 for
       the migration path from the legacy Testpostgresql trait.

     [New Features]
     - New Test::DBIx::Class::SchemaManager::Trait::Testpostgresqlv2 trait
       for seamless integration with Test::DBIx::Class (replaces the legacy
       Testpostgresql trait with a one-line change).
     - Added $errstr package variable so callers can use the idiomatic
       my $pg = Test::PostgreSQL::v2->new() or die $errstr pattern instead
       of catching exceptions.
     - Modern PostgreSQL binary discovery (postgres, postmaster) with
       POSTGRES_HOME environment variable support.
     - Socket directories isolated in tempdir to avoid permission conflicts
       with system directories such as /var/run/postgresql.
     - Socket path length protection for deeply nested temp directories
       (Unix socket path limit ~100 chars).
     - Automatic port selection with fallback to 54321.
     - Constructor accepts host, port, and user arguments.
     - Cluster initialised with --nosync for faster test startup.
     - SIGTERM with 5-second graceful shutdown window before SIGKILL fallback.
     - DESTROY guards against double-kill in forked processes (owner check).
     - Destruction order fix in trait (disconnect DBIx::Class storage before
       killing the PostgreSQL process) to prevent "Can't call method FETCH
       on an undefined value" warnings during global destruction.

     [Bug Fixes]
     - initdb error now reports exit code instead of unreliable $! value.
     - DESTROY now sets local $@ to prevent clobbering caller's exception
       during stack unwinding.