By: Tom Sydney Kerckhove <syd@cs-syd.eu>
Run persistent baseline phase in its own database
runSqitchPersistentChecks used to run the persistent baseline phase
(phase 1) and the sqitch deploy phase (phase 2) against the same
ConnectionPool, with a DROP/CREATE SCHEMA dance in between. Two
problems:
* If phase 1 leaves anything outside public/sqitch (extensions,
other schemas, dangling sequences) the wipe doesn't remove it and
phase 2's snapshot sees the leftovers.
* If phase 1 crashes partway, phase 2 inherits whatever state it
left behind.
Allocate a fresh ConnectionPool for phase 1 via
connectionPoolSetupFunc against the same TemplateDB. The freshly-copied
database is empty when phase 1 starts and torn down (DROP DATABASE
WITH FORCE) the moment the snapshot is captured. Phase 2 stays on the
caller's pool, exactly as before.
sqitchPersistentExtraSetup haddock updated to note that the two runs
now happen on different databases.
| Time to Start | Worker time | Duration | Time to finish | |
| Config | 0s | 2s | 2s | 2s |
| Eval | 3s | 46s | 46s | 50s |
| Build | 10s | 1m04s | 35s | 45s |
| Test | - | - | - | - |
| Deploy | - | - | - | - |
| Suite | 0s | 1m53s | 50s | 50s |