From cce34fd5b5f2e1b2c8f88e37235c68eb8fdb9942 Mon Sep 17 00:00:00 2001 From: Sean Oliver <882952+seanoliver@users.noreply.github.com> Date: Thu, 18 Sep 2025 19:38:05 -0700 Subject: [PATCH] fix: properly detect primary keys regardless of field type - Changed useQuickstartData to respect isPrimary flag from AI/templates - Always mark 'id' fields as primary key regardless of data type - Fixes issue where text-type id fields weren't marked as primary --- .../HomeNew/TableQuickstart/useQuickstartData.ts | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/apps/studio/components/interfaces/HomeNew/TableQuickstart/useQuickstartData.ts b/apps/studio/components/interfaces/HomeNew/TableQuickstart/useQuickstartData.ts index b5cf04130e1..cdd8a164463 100644 --- a/apps/studio/components/interfaces/HomeNew/TableQuickstart/useQuickstartData.ts +++ b/apps/studio/components/interfaces/HomeNew/TableQuickstart/useQuickstartData.ts @@ -53,9 +53,13 @@ export const useQuickstartData = ({ const columns: TableField['columns'] = fields.map( (field: QuickstartTableField, index: number) => { - const looksLikePrimaryKey = + // Check if field is marked as primary or if it's an id field + const isPrimaryKey = field.isPrimary === true || field.name === 'id' + + const looksLikeIdentity = field.name === 'id' && - (field.type === 'uuid' || field.type.toLowerCase().includes('int')) + field.type.toLowerCase().includes('int') && + !field.default return { id: `column-${index}`, @@ -64,9 +68,8 @@ export const useQuickstartData = ({ defaultValue: field.default ? String(field.default) : null, isNullable: field.nullable !== false, isUnique: field.unique ?? false, - isIdentity: - looksLikePrimaryKey && field.type.toLowerCase().includes('int') && !field.default, - isPrimaryKey: looksLikePrimaryKey, + isIdentity: looksLikeIdentity, + isPrimaryKey: isPrimaryKey, comment: field.description || '', isNewColumn: true, table: tableName,