Repository navigation
fix(db): separate runtime pooling from migration connections - #174
Merged
Merged
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Runtime Supabase URLs were silently changed from transaction mode (
6543) to session mode (5432), so application instances could exhaust the 15-session pool and block deployment migrations.Use Drizzle's node-postgres adapter with one shared runtime pool and Vercel's pool lifecycle integration. Preserve the configured endpoint, reject Supabase session URLs at runtime, and require an explicit direct/session
DATABASE_URL_UNPOOLEDfor administration.Run Drizzle's official migrator and its advisory lock on one dedicated connection, preserving the existing journal and lock key. Local migrations use the same runner. Update raw query consumers for node-postgres result shapes and document the connection setup.
Validation: 291 tests pass, along with lint/format/unused-code checks, typecheck, and the production build. Added configuration coverage requires neither Docker nor a running database.
Deployment: confirm
DATABASE_URLuses transaction pooling andDATABASE_URL_UNPOOLEDuses a reachable direct/session endpoint. Both production variables exist in Vercel, but their sensitive values could not be inspected. Older app instances may retain session connections until they retire.