Files
cbd420_ipn/migrations/add_expires_at_to_pending_orders.sql
2025-12-21 09:57:56 +01:00

26 lines
1.0 KiB
SQL

-- Migration: Add expires_at column to pending_orders table
-- This migration adds the expires_at column required for the 10-minute reservation mechanism
-- as described in the IPN Callback Integration Guide
-- Step 1: Add the column (nullable first for existing records)
ALTER TABLE `pending_orders`
ADD COLUMN `expires_at` datetime NULL
AFTER `created_at`;
-- Step 2: Update existing records to set expires_at based on created_at + 10 minutes
UPDATE `pending_orders`
SET `expires_at` = DATE_ADD(`created_at`, INTERVAL 10 MINUTE)
WHERE `expires_at` IS NULL;
-- Step 3: Make the column NOT NULL now that all records have values
ALTER TABLE `pending_orders`
MODIFY COLUMN `expires_at` datetime NOT NULL;
-- Step 4: Add index for cleanup queries (as recommended in the guide)
ALTER TABLE `pending_orders`
ADD INDEX `idx_expires_at` (`expires_at`);
-- Note: The application should set expires_at = NOW() + 10 minutes when creating new pending orders
-- Example: INSERT INTO pending_orders (..., expires_at) VALUES (..., DATE_ADD(NOW(), INTERVAL 10 MINUTE))