fix(drizzle-seed): apply db casing to pg_get_serial_sequence column name#5473
Open
sleitor wants to merge 1 commit intodrizzle-team:betafrom
Open
fix(drizzle-seed): apply db casing to pg_get_serial_sequence column name#5473sleitor wants to merge 1 commit intodrizzle-team:betafrom
sleitor wants to merge 1 commit intodrizzle-team:betafrom
Conversation
When a Drizzle database is configured with casing: 'snake_case', columns
defined with keyAsName:true (i.e. no explicit column name) have a .name
equal to the JS property key (camelCase). The dialect's CasingCache is
responsible for converting these to the actual DB column names.
Previously, updateColumnSequence used column.name directly in the
pg_get_serial_sequence call, causing it to pass the camelCase name
(e.g. 'multiWordInt') instead of the snake_case DB name ('multi_word_int'),
resulting in a runtime error for any multi-word integer-like column.
Fix: retrieve the db dialect's CasingCache and use getColumnCasing(column)
to obtain the actual DB column name before storing it in columnsToUpdateSeq.
Fixes drizzle-team#5470
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.
What's changed
When a Drizzle database is configured with
casing: 'snake_case', columns defined without an explicit column name (i.e.keyAsName: true) have their.nameset to the JS property key (camelCase). The dialect'sCasingCacheis responsible for converting these to the actual DB column names.Previously,
updateColumnSequenceusedcolumn.namedirectly in thepg_get_serial_sequencecall, causing it to pass the camelCase name (e.g.'multiWordInt') instead of the snake_case DB name ('multi_word_int'), resulting in a runtime error for any multi-word integer-like column when seeding.Fix: Retrieve the db dialect's
CasingCacheand usegetColumnCasing(column)to obtain the actual DB column name before storing it incolumnsToUpdateSeq.Fixes #5470
Type of change