Skip to content

Commit 047519f

Browse files
authored
fix(db-postgres): ensure index names are not too long (#13428)
Fixes #13196
1 parent c1c68fb commit 047519f

File tree

5 files changed

+44
-6
lines changed

5 files changed

+44
-6
lines changed

packages/drizzle/src/utilities/buildIndexName.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,12 @@ export const buildIndexName = ({
99
name: string
1010
number?: number
1111
}): string => {
12-
const indexName = `${name}${number ? `_${number}` : ''}_idx`
12+
let indexName = `${name}${number ? `_${number}` : ''}_idx`
13+
14+
if (indexName.length > 60) {
15+
const suffix = `${number ? `_${number}` : ''}_idx`
16+
indexName = `${name.slice(0, 60 - suffix.length)}${suffix}`
17+
}
1318

1419
if (!adapter.indexes.has(indexName)) {
1520
adapter.indexes.add(indexName)

test/database/getConfig.ts

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,39 @@ export const getConfig: () => Partial<Config> = () => ({
4444
type: 'text',
4545
name: 'title',
4646
},
47+
{
48+
type: 'tabs',
49+
tabs: [
50+
{
51+
name: 'hideout',
52+
fields: [
53+
{
54+
label: 'Cameras',
55+
type: 'tabs',
56+
unique: true,
57+
tabs: [
58+
{
59+
name: 'camera1',
60+
fields: [
61+
{
62+
type: 'row',
63+
fields: [
64+
{
65+
name: 'time1Image',
66+
type: 'relationship',
67+
relationTo: 'posts',
68+
unique: true,
69+
},
70+
],
71+
},
72+
],
73+
},
74+
],
75+
},
76+
],
77+
},
78+
],
79+
},
4780
],
4881
},
4982
{

test/database/up-down-migration/migrations/20250714_201659.json renamed to test/database/up-down-migration/migrations/20250811_134524.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"id": "80e7a0d2-ffb3-4f22-8597-0442b3ab8102",
2+
"id": "fc114c71-8138-46c6-b83a-4d70e79e0ea5",
33
"prevId": "00000000-0000-0000-0000-000000000000",
44
"version": "7",
55
"dialect": "postgresql",
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
import * as migration_20250714_201659 from './20250714_201659.js'
1+
import * as migration_20250811_134524 from './20250811_134524.js'
22

33
export const migrations = [
44
{
5-
up: migration_20250714_201659.up,
6-
down: migration_20250714_201659.down,
7-
name: '20250714_201659',
5+
up: migration_20250811_134524.up,
6+
down: migration_20250811_134524.down,
7+
name: '20250811_134524',
88
},
99
]

0 commit comments

Comments
 (0)