Search documentation of phoenix_kit

# PhoenixKit.Migrations.Postgres.V51 (phoenix_kit v1.7.87)

Copy Markdown View Source

V51: Cart items unique constraint fix + User deletion FK constraints

## Part 1: Cart Items Unique Constraint

The original constraint only checked (cart_id, product_id), preventing users from adding the same product with different options to their cart.

New constraint uses MD5 hash of selected_specs JSONB for efficient unique checking across all option combinations.

## Part 2: User Deletion Foreign Key Constraints

Changes ON DELETE behavior for user-related tables to support GDPR compliance - preserve financial/support records while allowing user deletion.

## Changes

- Drops existing idx_shop_cart_items_unique index
- Creates new unique index including MD5 hash of selected_specs
- orders.user_id: RESTRICT → SET NULL (preserve orders, anonymize user)
- billing_profiles.user_id: CASCADE → SET NULL (preserve for history)
- tickets.user_id: DELETE_ALL → SET NULL (preserve support history)
- orders.user_id: DROP NOT NULL constraint
- billing_profiles.user_id: DROP NOT NULL constraint
- tickets.user_id: DROP NOT NULL constraint

## Summary

### Functions

down(opts)
up(opts)

## Functions

# down(opts)

# up(opts)