Skip to content

Commit ef162f8

Browse files
authored
fix(order): Add composite unique index on order_item version:item_id (medusajs#14164)
* Unique index on order_item version:item_id * Add changeset
1 parent 0158554 commit ef162f8

File tree

4 files changed

+33
-0
lines changed

4 files changed

+33
-0
lines changed

.changeset/upset-mangos-stare.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@medusajs/order": minor
3+
---
4+
5+
fix(order): Add composite unique index on order_item version:item_id

packages/modules/order/src/migrations/.snapshot-medusa-order.json

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2005,6 +2005,15 @@
20052005
"unique": false,
20062006
"expression": "CREATE INDEX IF NOT EXISTS \"IDX_order_item_deleted_at\" ON \"order_item\" (\"deleted_at\") WHERE deleted_at IS NOT NULL"
20072007
},
2008+
{
2009+
"keyName": "IDX_unique_order_item_version_item_id",
2010+
"columnNames": [],
2011+
"composite": false,
2012+
"constraint": false,
2013+
"primary": false,
2014+
"unique": false,
2015+
"expression": "CREATE UNIQUE INDEX IF NOT EXISTS \"IDX_unique_order_item_version_item_id\" ON \"order_item\" (\"version\", \"item_id\") WHERE deleted_at IS NULL"
2016+
},
20082017
{
20092018
"keyName": "order_item_pkey",
20102019
"columnNames": [
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import { Migration } from '@mikro-orm/migrations';
2+
3+
export class Migration20251130184633 extends Migration {
4+
5+
override async up(): Promise<void> {
6+
this.addSql(`CREATE UNIQUE INDEX IF NOT EXISTS "IDX_unique_order_item_version_item_id" ON "order_item" ("version", "item_id") WHERE deleted_at IS NULL;`);
7+
}
8+
9+
override async down(): Promise<void> {
10+
this.addSql(`drop index if exists "IDX_unique_order_item_version_item_id";`);
11+
}
12+
13+
}

packages/modules/order/src/models/order-item.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,12 @@ const _OrderItem = model
5151
unique: false,
5252
where: "deleted_at IS NOT NULL",
5353
},
54+
{
55+
name: "IDX_unique_order_item_version_item_id",
56+
on: ["version", "item_id"],
57+
unique: true,
58+
where: "deleted_at IS NULL",
59+
},
5460
])
5561

5662
export const OrderItem = _OrderItem

0 commit comments

Comments
 (0)