26 lines
1.0 KiB
SQL
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))
|
|
|