chore(): order module index and some impl details (#13462)
* order module fixes * order module fixes * fixes * revert big number * Create wet-wombats-rule.md
This commit is contained in:
committed by
GitHub
parent
368c1d1e17
commit
823a5c75ff
File diff suppressed because it is too large
Load Diff
404
packages/modules/order/src/migrations/Migration20250910130000.ts
Normal file
404
packages/modules/order/src/migrations/Migration20250910130000.ts
Normal file
@@ -0,0 +1,404 @@
|
||||
import { Migration } from "@mikro-orm/migrations"
|
||||
|
||||
export class Migration20250910130000 extends Migration {
|
||||
override async up(): Promise<void> {
|
||||
// Drop all existing indexes with incorrect WHERE clauses (IS NOT NULL instead of IS NULL)
|
||||
|
||||
// Order table indexes
|
||||
this.addSql('drop index if exists "IDX_order_display_id";')
|
||||
this.addSql('drop index if exists "IDX_order_region_id";')
|
||||
this.addSql('drop index if exists "IDX_order_customer_id";')
|
||||
this.addSql('drop index if exists "IDX_order_sales_channel_id";')
|
||||
this.addSql('drop index if exists "IDX_order_currency_code";')
|
||||
this.addSql('drop index if exists "IDX_order_shipping_address_id";')
|
||||
this.addSql('drop index if exists "IDX_order_billing_address_id";')
|
||||
this.addSql('drop index if exists "IDX_order_is_draft_order";')
|
||||
|
||||
// Order change table indexes
|
||||
this.addSql('drop index if exists "IDX_order_change_order_id";')
|
||||
this.addSql('drop index if exists "IDX_order_change_return_id";')
|
||||
this.addSql('drop index if exists "IDX_order_change_claim_id";')
|
||||
this.addSql('drop index if exists "IDX_order_change_exchange_id";')
|
||||
this.addSql('drop index if exists "IDX_order_change_status";')
|
||||
this.addSql('drop index if exists "IDX_order_change_version";')
|
||||
|
||||
// Order change action table indexes
|
||||
this.addSql(
|
||||
'drop index if exists "IDX_order_change_action_order_change_id";'
|
||||
)
|
||||
this.addSql('drop index if exists "IDX_order_change_action_order_id";')
|
||||
this.addSql('drop index if exists "IDX_order_change_action_return_id";')
|
||||
this.addSql('drop index if exists "IDX_order_change_action_claim_id";')
|
||||
this.addSql('drop index if exists "IDX_order_change_action_exchange_id";')
|
||||
this.addSql('drop index if exists "IDX_order_change_action_ordering";')
|
||||
|
||||
// Order summary table indexes
|
||||
this.addSql('drop index if exists "IDX_order_summary_order_id_version";')
|
||||
|
||||
// Order claim table indexes
|
||||
this.addSql('drop index if exists "IDX_order_claim_display_id";')
|
||||
this.addSql('drop index if exists "IDX_order_claim_order_id";')
|
||||
this.addSql('drop index if exists "IDX_order_claim_return_id";')
|
||||
|
||||
// Order claim item table indexes
|
||||
this.addSql('drop index if exists "IDX_order_claim_item_claim_id";')
|
||||
this.addSql('drop index if exists "IDX_order_claim_item_item_id";')
|
||||
|
||||
// Order claim item image table indexes
|
||||
this.addSql(
|
||||
'drop index if exists "IDX_order_claim_item_image_claim_item_id";'
|
||||
)
|
||||
|
||||
// Order credit line table indexes
|
||||
this.addSql('drop index if exists "IDX_order_credit_line_order_id";')
|
||||
|
||||
// Order exchange table indexes
|
||||
this.addSql('drop index if exists "IDX_order_exchange_display_id";')
|
||||
this.addSql('drop index if exists "IDX_order_exchange_order_id";')
|
||||
this.addSql('drop index if exists "IDX_order_exchange_return_id";')
|
||||
|
||||
// Order exchange item table indexes
|
||||
this.addSql('drop index if exists "IDX_order_exchange_item_exchange_id";')
|
||||
this.addSql('drop index if exists "IDX_order_exchange_item_item_id";')
|
||||
|
||||
// Line item table indexes
|
||||
this.addSql('drop index if exists "IDX_order_line_item_product_id";')
|
||||
this.addSql('drop index if exists "IDX_line_item_product_type_id";')
|
||||
this.addSql('drop index if exists "IDX_order_line_item_variant_id";')
|
||||
|
||||
// Order item table indexes
|
||||
this.addSql('drop index if exists "IDX_order_item_order_id";')
|
||||
this.addSql('drop index if exists "IDX_order_item_item_id";')
|
||||
this.addSql('drop index if exists "IDX_order_item_version";')
|
||||
|
||||
// Order shipping method table indexes
|
||||
this.addSql('drop index if exists "IDX_order_shipping_order_id";')
|
||||
this.addSql('drop index if exists "IDX_order_shipping_return_id";')
|
||||
this.addSql('drop index if exists "IDX_order_shipping_claim_id";')
|
||||
this.addSql('drop index if exists "IDX_order_shipping_exchange_id";')
|
||||
this.addSql('drop index if exists "IDX_order_shipping_shipping_method_id";')
|
||||
this.addSql('drop index if exists "IDX_order_shipping_version";')
|
||||
|
||||
// Return table indexes
|
||||
this.addSql('drop index if exists "IDX_return_display_id";')
|
||||
this.addSql('drop index if exists "IDX_return_order_id";')
|
||||
this.addSql('drop index if exists "IDX_return_exchange_id";')
|
||||
this.addSql('drop index if exists "IDX_return_claim_id";')
|
||||
|
||||
// Return item table indexes
|
||||
this.addSql('drop index if exists "IDX_return_item_return_id";')
|
||||
this.addSql('drop index if exists "IDX_return_item_item_id";')
|
||||
this.addSql('drop index if exists "IDX_return_item_reason_id";')
|
||||
|
||||
// Return reason table indexes
|
||||
this.addSql('drop index if exists "IDX_return_reason_value";')
|
||||
this.addSql(
|
||||
'drop index if exists "IDX_return_reason_parent_return_reason_id";'
|
||||
)
|
||||
|
||||
// Transaction table indexes
|
||||
this.addSql('drop index if exists "IDX_order_transaction_order_id";')
|
||||
this.addSql(
|
||||
'drop index if exists "IDX_order_transaction_order_id_version";'
|
||||
)
|
||||
this.addSql('drop index if exists "IDX_order_transaction_return_id";')
|
||||
this.addSql('drop index if exists "IDX_order_transaction_claim_id";')
|
||||
this.addSql('drop index if exists "IDX_order_transaction_exchange_id";')
|
||||
this.addSql('drop index if exists "IDX_order_transaction_reference_id";')
|
||||
this.addSql('drop index if exists "IDX_order_transaction_currency_code";')
|
||||
|
||||
// Recreate all indexes with correct WHERE clauses (IS NULL for active records)
|
||||
|
||||
// Order table indexes
|
||||
this.addSql(
|
||||
'create index "IDX_order_display_id" on "order" ("display_id") where "deleted_at" is null;'
|
||||
)
|
||||
this.addSql(
|
||||
'create index "IDX_order_region_id" on "order" ("region_id") where "deleted_at" is null;'
|
||||
)
|
||||
this.addSql(
|
||||
'create index "IDX_order_customer_id" on "order" ("customer_id") where "deleted_at" is null;'
|
||||
)
|
||||
this.addSql(
|
||||
'create index "IDX_order_sales_channel_id" on "order" ("sales_channel_id") where "deleted_at" is null;'
|
||||
)
|
||||
this.addSql(
|
||||
'create index "IDX_order_currency_code" on "order" ("currency_code") where "deleted_at" is null;'
|
||||
)
|
||||
this.addSql(
|
||||
'create index "IDX_order_shipping_address_id" on "order" ("shipping_address_id") where "deleted_at" is null;'
|
||||
)
|
||||
this.addSql(
|
||||
'create index "IDX_order_billing_address_id" on "order" ("billing_address_id") where "deleted_at" is null;'
|
||||
)
|
||||
this.addSql(
|
||||
'create index "IDX_order_is_draft_order" on "order" ("is_draft_order") where "deleted_at" is null;'
|
||||
)
|
||||
|
||||
// Order change table indexes
|
||||
this.addSql(
|
||||
'create index "IDX_order_change_order_id" on "order_change" ("order_id") where "deleted_at" is null;'
|
||||
)
|
||||
this.addSql(
|
||||
'create index "IDX_order_change_return_id" on "order_change" ("return_id") where "return_id" is not null and "deleted_at" is null;'
|
||||
)
|
||||
this.addSql(
|
||||
'create index "IDX_order_change_claim_id" on "order_change" ("claim_id") where "claim_id" is not null and "deleted_at" is null;'
|
||||
)
|
||||
this.addSql(
|
||||
'create index "IDX_order_change_exchange_id" on "order_change" ("exchange_id") where "exchange_id" is not null and "deleted_at" is null;'
|
||||
)
|
||||
this.addSql(
|
||||
'create index "IDX_order_change_status" on "order_change" ("status") where "deleted_at" is null;'
|
||||
)
|
||||
this.addSql(
|
||||
'create index "IDX_order_change_version" on "order_change" ("order_id", "version") where "deleted_at" is null;'
|
||||
)
|
||||
|
||||
// Order change action table indexes
|
||||
this.addSql(
|
||||
'create index "IDX_order_change_action_order_change_id" on "order_change_action" ("order_change_id") where "deleted_at" is null;'
|
||||
)
|
||||
this.addSql(
|
||||
'create index "IDX_order_change_action_order_id" on "order_change_action" ("order_id") where "deleted_at" is null;'
|
||||
)
|
||||
this.addSql(
|
||||
'create index "IDX_order_change_action_return_id" on "order_change_action" ("return_id") where "return_id" is not null and "deleted_at" is null;'
|
||||
)
|
||||
this.addSql(
|
||||
'create index "IDX_order_change_action_claim_id" on "order_change_action" ("claim_id") where "claim_id" is not null and "deleted_at" is null;'
|
||||
)
|
||||
this.addSql(
|
||||
'create index "IDX_order_change_action_exchange_id" on "order_change_action" ("exchange_id") where "exchange_id" is not null and "deleted_at" is null;'
|
||||
)
|
||||
this.addSql(
|
||||
'create index "IDX_order_change_action_ordering" on "order_change_action" ("ordering") where "deleted_at" is null;'
|
||||
)
|
||||
|
||||
// Order summary table indexes
|
||||
this.addSql(
|
||||
'create index "IDX_order_summary_order_id_version" on "order_summary" ("order_id", "version") where "deleted_at" is null;'
|
||||
)
|
||||
|
||||
// Order claim table indexes
|
||||
this.addSql(
|
||||
'create index "IDX_order_claim_display_id" on "order_claim" ("display_id") where "deleted_at" is null;'
|
||||
)
|
||||
this.addSql(
|
||||
'create index "IDX_order_claim_order_id" on "order_claim" ("order_id") where "deleted_at" is null;'
|
||||
)
|
||||
this.addSql(
|
||||
'create index "IDX_order_claim_return_id" on "order_claim" ("return_id") where "return_id" is not null and "deleted_at" is null;'
|
||||
)
|
||||
|
||||
// Order claim item table indexes
|
||||
this.addSql(
|
||||
'create index "IDX_order_claim_item_claim_id" on "order_claim_item" ("claim_id") where "deleted_at" is null;'
|
||||
)
|
||||
this.addSql(
|
||||
'create index "IDX_order_claim_item_item_id" on "order_claim_item" ("item_id") where "deleted_at" is null;'
|
||||
)
|
||||
|
||||
// Order claim item image table indexes
|
||||
this.addSql(
|
||||
'create index "IDX_order_claim_item_image_claim_item_id" on "order_claim_item_image" ("claim_item_id") where "deleted_at" is null;'
|
||||
)
|
||||
|
||||
// Order credit line table indexes
|
||||
this.addSql(
|
||||
'create index "IDX_order_credit_line_order_id" on "order_credit_line" ("order_id") where "deleted_at" is null;'
|
||||
)
|
||||
|
||||
// Order exchange table indexes
|
||||
this.addSql(
|
||||
'create index "IDX_order_exchange_display_id" on "order_exchange" ("display_id") where "deleted_at" is null;'
|
||||
)
|
||||
this.addSql(
|
||||
'create index "IDX_order_exchange_order_id" on "order_exchange" ("order_id") where "deleted_at" is null;'
|
||||
)
|
||||
this.addSql(
|
||||
'create index "IDX_order_exchange_return_id" on "order_exchange" ("return_id") where "return_id" is not null and "deleted_at" is null;'
|
||||
)
|
||||
|
||||
// Order exchange item table indexes
|
||||
this.addSql(
|
||||
'create index "IDX_order_exchange_item_exchange_id" on "order_exchange_item" ("exchange_id") where "deleted_at" is null;'
|
||||
)
|
||||
this.addSql(
|
||||
'create index "IDX_order_exchange_item_item_id" on "order_exchange_item" ("item_id") where "deleted_at" is null;'
|
||||
)
|
||||
|
||||
// Line item table indexes
|
||||
this.addSql(
|
||||
'create index "IDX_order_line_item_product_id" on "order_line_item" ("product_id") where "deleted_at" is null;'
|
||||
)
|
||||
this.addSql(
|
||||
'create index "IDX_line_item_product_type_id" on "order_line_item" ("product_type_id") where "deleted_at" is null and "product_type_id" is not null;'
|
||||
)
|
||||
this.addSql(
|
||||
'create index "IDX_order_line_item_variant_id" on "order_line_item" ("variant_id") where "deleted_at" is null;'
|
||||
)
|
||||
|
||||
// Order item table indexes
|
||||
this.addSql(
|
||||
'create index "IDX_order_item_order_id" on "order_item" ("order_id") where "deleted_at" is null;'
|
||||
)
|
||||
this.addSql(
|
||||
'create index "IDX_order_item_item_id" on "order_item" ("item_id") where "deleted_at" is null;'
|
||||
)
|
||||
this.addSql(
|
||||
'create index "IDX_order_item_version" on "order_item" ("order_id", "version") where "deleted_at" is null;'
|
||||
)
|
||||
|
||||
// Order shipping method table indexes
|
||||
this.addSql(
|
||||
'create index "IDX_order_shipping_order_id" on "order_shipping" ("order_id") where "deleted_at" is null;'
|
||||
)
|
||||
this.addSql(
|
||||
'create index "IDX_order_shipping_return_id" on "order_shipping" ("return_id") where "return_id" is not null and "deleted_at" is null;'
|
||||
)
|
||||
this.addSql(
|
||||
'create index "IDX_order_shipping_claim_id" on "order_shipping" ("claim_id") where "claim_id" is not null and "deleted_at" is null;'
|
||||
)
|
||||
this.addSql(
|
||||
'create index "IDX_order_shipping_exchange_id" on "order_shipping" ("exchange_id") where "exchange_id" is not null and "deleted_at" is null;'
|
||||
)
|
||||
this.addSql(
|
||||
'create index "IDX_order_shipping_shipping_method_id" on "order_shipping" ("shipping_method_id") where "deleted_at" is null;'
|
||||
)
|
||||
this.addSql(
|
||||
'create index "IDX_order_shipping_version" on "order_shipping" ("order_id", "version") where "deleted_at" is null;'
|
||||
)
|
||||
|
||||
// Return table indexes
|
||||
this.addSql(
|
||||
'create index "IDX_return_display_id" on "return" ("display_id") where "deleted_at" is null;'
|
||||
)
|
||||
this.addSql(
|
||||
'create index "IDX_return_order_id" on "return" ("order_id") where "deleted_at" is null;'
|
||||
)
|
||||
this.addSql(
|
||||
'create index "IDX_return_exchange_id" on "return" ("exchange_id") where "exchange_id" is not null and "deleted_at" is null;'
|
||||
)
|
||||
this.addSql(
|
||||
'create index "IDX_return_claim_id" on "return" ("claim_id") where "claim_id" is not null and "deleted_at" is null;'
|
||||
)
|
||||
|
||||
// Return item table indexes
|
||||
this.addSql(
|
||||
'create index "IDX_return_item_return_id" on "return_item" ("return_id") where "deleted_at" is null;'
|
||||
)
|
||||
this.addSql(
|
||||
'create index "IDX_return_item_item_id" on "return_item" ("item_id") where "deleted_at" is null;'
|
||||
)
|
||||
this.addSql(
|
||||
'create index "IDX_return_item_reason_id" on "return_item" ("reason_id") where "deleted_at" is null;'
|
||||
)
|
||||
|
||||
// Return reason table indexes
|
||||
this.addSql(
|
||||
'create index "IDX_return_reason_value" on "return_reason" ("value") where "deleted_at" is null;'
|
||||
)
|
||||
this.addSql(
|
||||
'create index "IDX_return_reason_parent_return_reason_id" on "return_reason" ("parent_return_reason_id") where "deleted_at" is null;'
|
||||
)
|
||||
|
||||
// Transaction table indexes
|
||||
this.addSql(
|
||||
'create index "IDX_order_transaction_order_id" on "order_transaction" ("order_id") where "deleted_at" is null;'
|
||||
)
|
||||
this.addSql(
|
||||
'create index "IDX_order_transaction_order_id_version" on "order_transaction" ("order_id", "version") where "deleted_at" is null;'
|
||||
)
|
||||
this.addSql(
|
||||
'create index "IDX_order_transaction_return_id" on "order_transaction" ("return_id") where "return_id" is not null and "deleted_at" is null;'
|
||||
)
|
||||
this.addSql(
|
||||
'create index "IDX_order_transaction_claim_id" on "order_transaction" ("claim_id") where "claim_id" is not null and "deleted_at" is null;'
|
||||
)
|
||||
this.addSql(
|
||||
'create index "IDX_order_transaction_exchange_id" on "order_transaction" ("exchange_id") where "exchange_id" is not null and "deleted_at" is null;'
|
||||
)
|
||||
this.addSql(
|
||||
'create index "IDX_order_transaction_reference_id" on "order_transaction" ("reference_id") where "deleted_at" is null;'
|
||||
)
|
||||
this.addSql(
|
||||
'create index "IDX_order_transaction_currency_code" on "order_transaction" ("currency_code") where "deleted_at" is null;'
|
||||
)
|
||||
}
|
||||
|
||||
override async down(): Promise<void> {
|
||||
// Drop all the corrected indexes (this is a simplified rollback - in practice you might want to be more specific)
|
||||
|
||||
const indexesToDrop = [
|
||||
"IDX_order_display_id",
|
||||
"IDX_order_region_id",
|
||||
"IDX_order_customer_id",
|
||||
"IDX_order_sales_channel_id",
|
||||
"IDX_order_currency_code",
|
||||
"IDX_order_shipping_address_id",
|
||||
"IDX_order_billing_address_id",
|
||||
"IDX_order_is_draft_order",
|
||||
"IDX_order_change_order_id",
|
||||
"IDX_order_change_return_id",
|
||||
"IDX_order_change_claim_id",
|
||||
"IDX_order_change_exchange_id",
|
||||
"IDX_order_change_status",
|
||||
"IDX_order_change_version",
|
||||
"IDX_order_change_action_order_change_id",
|
||||
"IDX_order_change_action_order_id",
|
||||
"IDX_order_change_action_return_id",
|
||||
"IDX_order_change_action_claim_id",
|
||||
"IDX_order_change_action_exchange_id",
|
||||
"IDX_order_change_action_ordering",
|
||||
"IDX_order_summary_order_id_version",
|
||||
"IDX_order_claim_display_id",
|
||||
"IDX_order_claim_order_id",
|
||||
"IDX_order_claim_return_id",
|
||||
"IDX_order_claim_item_claim_id",
|
||||
"IDX_order_claim_item_item_id",
|
||||
"IDX_order_claim_item_image_claim_item_id",
|
||||
"IDX_order_credit_line_order_id",
|
||||
"IDX_order_exchange_display_id",
|
||||
"IDX_order_exchange_order_id",
|
||||
"IDX_order_exchange_return_id",
|
||||
"IDX_order_exchange_item_exchange_id",
|
||||
"IDX_order_exchange_item_item_id",
|
||||
"IDX_order_line_item_product_id",
|
||||
"IDX_line_item_product_type_id",
|
||||
"IDX_order_line_item_variant_id",
|
||||
"IDX_order_item_order_id",
|
||||
"IDX_order_item_item_id",
|
||||
"IDX_order_item_version",
|
||||
"IDX_order_shipping_order_id",
|
||||
"IDX_order_shipping_return_id",
|
||||
"IDX_order_shipping_claim_id",
|
||||
"IDX_order_shipping_exchange_id",
|
||||
"IDX_order_shipping_shipping_method_id",
|
||||
"IDX_order_shipping_version",
|
||||
"IDX_return_display_id",
|
||||
"IDX_return_order_id",
|
||||
"IDX_return_exchange_id",
|
||||
"IDX_return_claim_id",
|
||||
"IDX_return_item_return_id",
|
||||
"IDX_return_item_item_id",
|
||||
"IDX_return_item_reason_id",
|
||||
"IDX_return_reason_value",
|
||||
"IDX_return_reason_parent_return_reason_id",
|
||||
"IDX_order_transaction_order_id",
|
||||
"IDX_order_transaction_order_id_version",
|
||||
"IDX_order_transaction_return_id",
|
||||
"IDX_order_transaction_claim_id",
|
||||
"IDX_order_transaction_exchange_id",
|
||||
"IDX_order_transaction_reference_id",
|
||||
"IDX_order_transaction_currency_code",
|
||||
]
|
||||
|
||||
for (const indexName of indexesToDrop) {
|
||||
this.addSql(`drop index if exists "${indexName}";`)
|
||||
}
|
||||
|
||||
// Note: For a complete rollback, you would recreate the original incorrect indexes here
|
||||
// This is omitted for brevity, but in practice you might want to restore the original state
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user