Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I'm still quite unsure about a bunch of this, but felt I needed to get some version of this out the door. It should work in principle but I have less confidence than I'd like mostly because it's quite awkward to test.
The major things outstanding items (in part perhaps those can be left for an iteration):
For a start I went with the simplest approaches I could come up with.
withTmpDb
that sets up a read replica is doable), but I've shied away from the work so far. It's tempting to spin out the pool implementation to a separately tested package with decent coverage, and leave the postgrest coverage to something minimal.I'll probably think of more once I let this settle for a bit 😅
From the commit message:
Test coverage is spotty and work-in-progress. It requires a replicating setup which is not automated. With a locally set up read replica, the integration test suite should pass as follows:
PGHOSTREP='/tmp' PGPORTREP=5433 PGHOST='/tmp' PGPORT=5432
postgrest-test-io
You can pass '-k test_readonly' for replication-specific tests.