Conversation
drizzle-kit introspects unique constraint columns with no ORDER BY. On Neon it read unique_bootcamp_session as (term, week), diffed it against the schema's (week, term), and tried to re-add it. Adding a unique constraint to a non-empty table opens a TTY prompt, which killed the App Hosting build before withdrawn_by_admin_at was pushed. Index columns are introspected by position, so a unique index with the same columns and null semantics diffs cleanly. Verified on a restored prod dump: push applies without a prompt, a second push is clean, and db:check passes.
Feature: fix/bootcamp-session-index to dev
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.
Automated PR tracking changes from
devintomain.Note
Low Risk
Schema declaration change only; DB behavior for uniqueness should be equivalent, with lower risk of failed automated migrations.
Overview
Replaces the
unique_bootcamp_sessiontable constraint on(bootcamp_week, bootcamp_term)with auniqueIndexnamedevent_bootcamp_session_idx, keeping the same rule: one bootcamp session per week per term (null pairs still don’t collide).This is a Drizzle/Neon deploy fix:
drizzle-kit pushwas mis-reading unique constraint column order, attempting to re-add the constraint, and blocking non-interactive deploys. Unique indexes preserve column order on introspection, so pushes should stop fighting the schema.Reviewed by Cursor Bugbot for commit 67efd80. Bugbot is set up for automated code reviews on this repo. Configure here.