diff --git a/.changeset/upset-mangos-stare.md b/.changeset/upset-mangos-stare.md new file mode 100644 index 0000000000..495a82068b --- /dev/null +++ b/.changeset/upset-mangos-stare.md @@ -0,0 +1,5 @@ +--- +"@medusajs/order": minor +--- + +fix(order): Add composite unique index on order_item version:item_id diff --git a/packages/modules/order/src/migrations/.snapshot-medusa-order.json b/packages/modules/order/src/migrations/.snapshot-medusa-order.json index c174cf53b5..6cf6e121e9 100644 --- a/packages/modules/order/src/migrations/.snapshot-medusa-order.json +++ b/packages/modules/order/src/migrations/.snapshot-medusa-order.json @@ -2005,6 +2005,15 @@ "unique": false, "expression": "CREATE INDEX IF NOT EXISTS \"IDX_order_item_deleted_at\" ON \"order_item\" (\"deleted_at\") WHERE deleted_at IS NOT NULL" }, + { + "keyName": "IDX_unique_order_item_version_item_id", + "columnNames": [], + "composite": false, + "constraint": false, + "primary": false, + "unique": false, + "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" + }, { "keyName": "order_item_pkey", "columnNames": [ diff --git a/packages/modules/order/src/migrations/Migration20251130184633.ts b/packages/modules/order/src/migrations/Migration20251130184633.ts new file mode 100644 index 0000000000..a5cb4074a1 --- /dev/null +++ b/packages/modules/order/src/migrations/Migration20251130184633.ts @@ -0,0 +1,13 @@ +import { Migration } from '@mikro-orm/migrations'; + +export class Migration20251130184633 extends Migration { + + override async up(): Promise { + 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;`); + } + + override async down(): Promise { + this.addSql(`drop index if exists "IDX_unique_order_item_version_item_id";`); + } + +} diff --git a/packages/modules/order/src/models/order-item.ts b/packages/modules/order/src/models/order-item.ts index 753622204f..f16ff1bd2b 100644 --- a/packages/modules/order/src/models/order-item.ts +++ b/packages/modules/order/src/models/order-item.ts @@ -51,6 +51,12 @@ const _OrderItem = model unique: false, where: "deleted_at IS NOT NULL", }, + { + name: "IDX_unique_order_item_version_item_id", + on: ["version", "item_id"], + unique: true, + where: "deleted_at IS NULL", + }, ]) export const OrderItem = _OrderItem