mirror of
				https://github.com/juspay/hyperswitch.git
				synced 2025-10-31 10:06:32 +08:00 
			
		
		
		
	 838372ab3f
			
		
	
	838372ab3f
	
	
	
		
			
			Co-authored-by: Nishant Joshi <nishant.joshi@juspay.in> Co-authored-by: Venkatesh <inventvenkat@gmail.com>
		
			
				
	
	
		
			2253 lines
		
	
	
		
			61 KiB
		
	
	
	
		
			PL/PgSQL
		
	
	
	
	
	
			
		
		
	
	
			2253 lines
		
	
	
		
			61 KiB
		
	
	
	
		
			PL/PgSQL
		
	
	
	
	
	
| -- File: migrations/00000000000000_diesel_initial_setup/up.sql
 | |
| -- This file was automatically created by Diesel to setup helper functions
 | |
| -- and other internal bookkeeping. This file is safe to edit, any future
 | |
| -- changes will be added to existing projects as new migrations.
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| -- Sets up a trigger for the given table to automatically set a column called
 | |
| -- `updated_at` whenever the row is modified (unless `updated_at` was included
 | |
| -- in the modified columns)
 | |
| --
 | |
| -- # Example
 | |
| --
 | |
| -- ```sql
 | |
| -- CREATE TABLE users (id SERIAL PRIMARY KEY, updated_at TIMESTAMP NOT NULL DEFAULT NOW());
 | |
| --
 | |
| -- SELECT diesel_manage_updated_at('users');
 | |
| -- ```
 | |
| CREATE OR REPLACE FUNCTION diesel_manage_updated_at(_tbl regclass) RETURNS VOID AS $$
 | |
| BEGIN
 | |
|     EXECUTE format('CREATE TRIGGER set_updated_at BEFORE UPDATE ON %s
 | |
|                     FOR EACH ROW EXECUTE PROCEDURE diesel_set_updated_at()', _tbl);
 | |
| END;
 | |
| $$ LANGUAGE plpgsql;
 | |
| 
 | |
| CREATE OR REPLACE FUNCTION diesel_set_updated_at() RETURNS trigger AS $$
 | |
| BEGIN
 | |
|     IF (
 | |
|         NEW IS DISTINCT FROM OLD AND
 | |
|         NEW.updated_at IS NOT DISTINCT FROM OLD.updated_at
 | |
|     ) THEN
 | |
|         NEW.updated_at := current_timestamp;
 | |
|     END IF;
 | |
|     RETURN NEW;
 | |
| END;
 | |
| $$ LANGUAGE plpgsql;
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2022-09-29-084920_create_initial_tables/up.sql
 | |
| -- Types
 | |
| CREATE TYPE "AttemptStatus" AS ENUM (
 | |
|     'started',
 | |
|     'authentication_failed',
 | |
|     'juspay_declined',
 | |
|     'pending_vbv',
 | |
|     'vbv_successful',
 | |
|     'authorized',
 | |
|     'authorization_failed',
 | |
|     'charged',
 | |
|     'authorizing',
 | |
|     'cod_initiated',
 | |
|     'voided',
 | |
|     'void_initiated',
 | |
|     'capture_initiated',
 | |
|     'capture_failed',
 | |
|     'void_failed',
 | |
|     'auto_refunded',
 | |
|     'partial_charged',
 | |
|     'pending',
 | |
|     'failure',
 | |
|     'payment_method_awaited',
 | |
|     'confirmation_awaited'
 | |
| );
 | |
| 
 | |
| CREATE TYPE "AuthenticationType" AS ENUM ('three_ds', 'no_three_ds');
 | |
| 
 | |
| CREATE TYPE "CaptureMethod" AS ENUM ('automatic', 'manual', 'scheduled');
 | |
| 
 | |
| CREATE TYPE "ConnectorType" AS ENUM (
 | |
|     'payment_processor',
 | |
|     'payment_vas',
 | |
|     'fin_operations',
 | |
|     'fiz_operations',
 | |
|     'networks',
 | |
|     'banking_entities',
 | |
|     'non_banking_finance'
 | |
| );
 | |
| 
 | |
| CREATE TYPE "Currency" AS ENUM (
 | |
|     'AED',
 | |
|     'ALL',
 | |
|     'AMD',
 | |
|     'ARS',
 | |
|     'AUD',
 | |
|     'AWG',
 | |
|     'AZN',
 | |
|     'BBD',
 | |
|     'BDT',
 | |
|     'BHD',
 | |
|     'BMD',
 | |
|     'BND',
 | |
|     'BOB',
 | |
|     'BRL',
 | |
|     'BSD',
 | |
|     'BWP',
 | |
|     'BZD',
 | |
|     'CAD',
 | |
|     'CHF',
 | |
|     'CNY',
 | |
|     'COP',
 | |
|     'CRC',
 | |
|     'CUP',
 | |
|     'CZK',
 | |
|     'DKK',
 | |
|     'DOP',
 | |
|     'DZD',
 | |
|     'EGP',
 | |
|     'ETB',
 | |
|     'EUR',
 | |
|     'FJD',
 | |
|     'GBP',
 | |
|     'GHS',
 | |
|     'GIP',
 | |
|     'GMD',
 | |
|     'GTQ',
 | |
|     'GYD',
 | |
|     'HKD',
 | |
|     'HNL',
 | |
|     'HRK',
 | |
|     'HTG',
 | |
|     'HUF',
 | |
|     'IDR',
 | |
|     'ILS',
 | |
|     'INR',
 | |
|     'JMD',
 | |
|     'JOD',
 | |
|     'JPY',
 | |
|     'KES',
 | |
|     'KGS',
 | |
|     'KHR',
 | |
|     'KRW',
 | |
|     'KWD',
 | |
|     'KYD',
 | |
|     'KZT',
 | |
|     'LAK',
 | |
|     'LBP',
 | |
|     'LKR',
 | |
|     'LRD',
 | |
|     'LSL',
 | |
|     'MAD',
 | |
|     'MDL',
 | |
|     'MKD',
 | |
|     'MMK',
 | |
|     'MNT',
 | |
|     'MOP',
 | |
|     'MUR',
 | |
|     'MVR',
 | |
|     'MWK',
 | |
|     'MXN',
 | |
|     'MYR',
 | |
|     'NAD',
 | |
|     'NGN',
 | |
|     'NIO',
 | |
|     'NOK',
 | |
|     'NPR',
 | |
|     'NZD',
 | |
|     'OMR',
 | |
|     'PEN',
 | |
|     'PGK',
 | |
|     'PHP',
 | |
|     'PKR',
 | |
|     'PLN',
 | |
|     'QAR',
 | |
|     'RUB',
 | |
|     'SAR',
 | |
|     'SCR',
 | |
|     'SEK',
 | |
|     'SGD',
 | |
|     'SLL',
 | |
|     'SOS',
 | |
|     'SSP',
 | |
|     'SVC',
 | |
|     'SZL',
 | |
|     'THB',
 | |
|     'TTD',
 | |
|     'TWD',
 | |
|     'TZS',
 | |
|     'USD',
 | |
|     'UYU',
 | |
|     'UZS',
 | |
|     'YER',
 | |
|     'ZAR'
 | |
| );
 | |
| 
 | |
| CREATE TYPE "EventClass" AS ENUM ('payments');
 | |
| 
 | |
| CREATE TYPE "EventObjectType" AS ENUM ('payment_details');
 | |
| 
 | |
| CREATE TYPE "EventType" AS ENUM ('payment_succeeded');
 | |
| 
 | |
| CREATE TYPE "FutureUsage" AS ENUM ('on_session', 'off_session');
 | |
| 
 | |
| CREATE TYPE "IntentStatus" AS ENUM (
 | |
|     'succeeded',
 | |
|     'failed',
 | |
|     'processing',
 | |
|     'requires_customer_action',
 | |
|     'requires_payment_method',
 | |
|     'requires_confirmation'
 | |
| );
 | |
| 
 | |
| CREATE TYPE "MandateStatus" AS ENUM (
 | |
|     'active',
 | |
|     'inactive',
 | |
|     'pending',
 | |
|     'revoked'
 | |
| );
 | |
| 
 | |
| CREATE TYPE "MandateType" AS ENUM ('single_use', 'multi_use');
 | |
| 
 | |
| CREATE TYPE "PaymentFlow" AS ENUM (
 | |
|     'vsc',
 | |
|     'emi',
 | |
|     'otp',
 | |
|     'upi_intent',
 | |
|     'upi_collect',
 | |
|     'upi_scan_and_pay',
 | |
|     'sdk'
 | |
| );
 | |
| 
 | |
| CREATE TYPE "PaymentMethodIssuerCode" AS ENUM (
 | |
|     'jp_hdfc',
 | |
|     'jp_icici',
 | |
|     'jp_googlepay',
 | |
|     'jp_applepay',
 | |
|     'jp_phonepe',
 | |
|     'jp_wechat',
 | |
|     'jp_sofort',
 | |
|     'jp_giropay',
 | |
|     'jp_sepa',
 | |
|     'jp_bacs'
 | |
| );
 | |
| 
 | |
| CREATE TYPE "PaymentMethodSubType" AS ENUM (
 | |
|     'credit',
 | |
|     'debit',
 | |
|     'upi_intent',
 | |
|     'upi_collect',
 | |
|     'credit_card_installments',
 | |
|     'pay_later_installments'
 | |
| );
 | |
| 
 | |
| CREATE TYPE "PaymentMethodType" AS ENUM (
 | |
|     'card',
 | |
|     'bank_transfer',
 | |
|     'netbanking',
 | |
|     'upi',
 | |
|     'open_banking',
 | |
|     'consumer_finance',
 | |
|     'wallet',
 | |
|     'payment_container',
 | |
|     'bank_debit',
 | |
|     'pay_later'
 | |
| );
 | |
| 
 | |
| CREATE TYPE "ProcessTrackerStatus" AS ENUM (
 | |
|     'processing',
 | |
|     'new',
 | |
|     'pending',
 | |
|     'process_started',
 | |
|     'finish'
 | |
| );
 | |
| 
 | |
| CREATE TYPE "RefundStatus" AS ENUM (
 | |
|     'failure',
 | |
|     'manual_review',
 | |
|     'pending',
 | |
|     'success',
 | |
|     'transaction_failure'
 | |
| );
 | |
| 
 | |
| CREATE TYPE "RefundType" AS ENUM (
 | |
|     'instant_refund',
 | |
|     'regular_refund',
 | |
|     'retry_refund'
 | |
| );
 | |
| 
 | |
| CREATE TYPE "RoutingAlgorithm" AS ENUM (
 | |
|     'round_robin',
 | |
|     'max_conversion',
 | |
|     'min_cost',
 | |
|     'custom'
 | |
| );
 | |
| 
 | |
| -- Tables
 | |
| CREATE TABLE address (
 | |
|     id SERIAL,
 | |
|     address_id VARCHAR(255) PRIMARY KEY,
 | |
|     city VARCHAR(255),
 | |
|     country VARCHAR(255),
 | |
|     line1 VARCHAR(255),
 | |
|     line2 VARCHAR(255),
 | |
|     line3 VARCHAR(255),
 | |
|     state VARCHAR(255),
 | |
|     zip VARCHAR(255),
 | |
|     first_name VARCHAR(255),
 | |
|     last_name VARCHAR(255),
 | |
|     phone_number VARCHAR(255),
 | |
|     country_code VARCHAR(255),
 | |
|     created_at TIMESTAMP NOT NULL DEFAULT now()::TIMESTAMP,
 | |
|     modified_at TIMESTAMP NOT NULL DEFAULT now()::TIMESTAMP
 | |
| );
 | |
| 
 | |
| CREATE TABLE configs (
 | |
|     id SERIAL,
 | |
|     key VARCHAR(255) NOT NULL,
 | |
|     config TEXT NOT NULL,
 | |
|     PRIMARY KEY (key)
 | |
| );
 | |
| 
 | |
| CREATE TABLE customers (
 | |
|     id SERIAL,
 | |
|     customer_id VARCHAR(255) NOT NULL,
 | |
|     merchant_id VARCHAR(255) NOT NULL,
 | |
|     NAME VARCHAR(255),
 | |
|     email VARCHAR(255),
 | |
|     phone VARCHAR(255),
 | |
|     phone_country_code VARCHAR(255),
 | |
|     description VARCHAR(255),
 | |
|     address JSON,
 | |
|     created_at TIMESTAMP NOT NULL DEFAULT now()::TIMESTAMP,
 | |
|     metadata JSON,
 | |
|     PRIMARY KEY (customer_id, merchant_id)
 | |
| );
 | |
| 
 | |
| CREATE TABLE events (
 | |
|     id SERIAL PRIMARY KEY,
 | |
|     event_id VARCHAR(255) NOT NULL,
 | |
|     event_type "EventType" NOT NULL,
 | |
|     event_class "EventClass" NOT NULL,
 | |
|     is_webhook_notified BOOLEAN NOT NULL DEFAULT FALSE,
 | |
|     intent_reference_id VARCHAR(255),
 | |
|     primary_object_id VARCHAR(255) NOT NULL,
 | |
|     primary_object_type "EventObjectType" NOT NULL,
 | |
|     created_at TIMESTAMP NOT NULL DEFAULT now()::TIMESTAMP
 | |
| );
 | |
| 
 | |
| CREATE TABLE locker_mock_up (
 | |
|     id SERIAL PRIMARY KEY,
 | |
|     card_id VARCHAR(255) NOT NULL,
 | |
|     external_id VARCHAR(255) NOT NULL,
 | |
|     card_fingerprint VARCHAR(255) NOT NULL,
 | |
|     card_global_fingerprint VARCHAR(255) NOT NULL,
 | |
|     merchant_id VARCHAR(255) NOT NULL,
 | |
|     card_number VARCHAR(255) NOT NULL,
 | |
|     card_exp_year VARCHAR(255) NOT NULL,
 | |
|     card_exp_month VARCHAR(255) NOT NULL,
 | |
|     name_on_card VARCHAR(255),
 | |
|     nickname VARCHAR(255),
 | |
|     customer_id VARCHAR(255),
 | |
|     duplicate BOOLEAN
 | |
| );
 | |
| 
 | |
| CREATE TABLE mandate (
 | |
|     id SERIAL PRIMARY KEY,
 | |
|     mandate_id VARCHAR(255) NOT NULL,
 | |
|     customer_id VARCHAR(255) NOT NULL,
 | |
|     merchant_id VARCHAR(255) NOT NULL,
 | |
|     payment_method_id VARCHAR(255) NOT NULL,
 | |
|     mandate_status "MandateStatus" NOT NULL,
 | |
|     mandate_type "MandateType" NOT NULL,
 | |
|     customer_accepted_at TIMESTAMP,
 | |
|     customer_ip_address VARCHAR(255),
 | |
|     customer_user_agent VARCHAR(255),
 | |
|     network_transaction_id VARCHAR(255),
 | |
|     previous_transaction_id VARCHAR(255),
 | |
|     created_at TIMESTAMP NOT NULL DEFAULT now()::TIMESTAMP
 | |
| );
 | |
| 
 | |
| CREATE TABLE merchant_account (
 | |
|     id SERIAL PRIMARY KEY,
 | |
|     merchant_id VARCHAR(255) NOT NULL,
 | |
|     api_key VARCHAR(255),
 | |
|     return_url VARCHAR(255),
 | |
|     enable_payment_response_hash BOOLEAN NOT NULL DEFAULT FALSE,
 | |
|     payment_response_hash_key VARCHAR(255) DEFAULT NULL,
 | |
|     redirect_to_merchant_with_http_post BOOLEAN NOT NULL DEFAULT FALSE,
 | |
|     merchant_name VARCHAR(255),
 | |
|     merchant_details JSON,
 | |
|     webhook_details JSON,
 | |
|     routing_algorithm "RoutingAlgorithm",
 | |
|     custom_routing_rules JSON,
 | |
|     sub_merchants_enabled BOOLEAN DEFAULT FALSE,
 | |
|     parent_merchant_id VARCHAR(255),
 | |
|     publishable_key VARCHAR(255)
 | |
| );
 | |
| 
 | |
| CREATE TABLE merchant_connector_account (
 | |
|     id SERIAL PRIMARY KEY,
 | |
|     merchant_id VARCHAR(255) NOT NULL,
 | |
|     connector_name VARCHAR(255) NOT NULL,
 | |
|     connector_account_details JSON NOT NULL,
 | |
|     test_mode BOOLEAN,
 | |
|     disabled BOOLEAN,
 | |
|     merchant_connector_id SERIAL NOT NULL,
 | |
|     payment_methods_enabled JSON [ ],
 | |
|     connector_type "ConnectorType" NOT NULL DEFAULT 'payment_processor'::"ConnectorType"
 | |
| );
 | |
| 
 | |
| CREATE TABLE payment_attempt (
 | |
|     id SERIAL PRIMARY KEY,
 | |
|     payment_id VARCHAR(255) NOT NULL,
 | |
|     merchant_id VARCHAR(255) NOT NULL,
 | |
|     txn_id VARCHAR(255) NOT NULL,
 | |
|     status "AttemptStatus" NOT NULL,
 | |
|     amount INTEGER NOT NULL,
 | |
|     currency "Currency",
 | |
|     save_to_locker BOOLEAN,
 | |
|     connector VARCHAR(255) NOT NULL,
 | |
|     error_message TEXT,
 | |
|     offer_amount INTEGER,
 | |
|     surcharge_amount INTEGER,
 | |
|     tax_amount INTEGER,
 | |
|     payment_method_id VARCHAR(255),
 | |
|     payment_method "PaymentMethodType",
 | |
|     payment_flow "PaymentFlow",
 | |
|     redirect BOOLEAN,
 | |
|     connector_transaction_id VARCHAR(255),
 | |
|     capture_method "CaptureMethod",
 | |
|     capture_on TIMESTAMP,
 | |
|     confirm BOOLEAN NOT NULL,
 | |
|     authentication_type "AuthenticationType",
 | |
|     created_at TIMESTAMP NOT NULL,
 | |
|     modified_at TIMESTAMP NOT NULL,
 | |
|     last_synced TIMESTAMP
 | |
| );
 | |
| 
 | |
| CREATE TABLE payment_intent (
 | |
|     id SERIAL PRIMARY KEY,
 | |
|     payment_id VARCHAR(255) NOT NULL,
 | |
|     merchant_id VARCHAR(255) NOT NULL,
 | |
|     status "IntentStatus" NOT NULL,
 | |
|     amount INTEGER NOT NULL,
 | |
|     currency "Currency",
 | |
|     amount_captured INTEGER,
 | |
|     customer_id VARCHAR(255),
 | |
|     description VARCHAR(255),
 | |
|     return_url VARCHAR(255),
 | |
|     metadata JSONB DEFAULT '{}'::JSONB,
 | |
|     connector_id VARCHAR(255),
 | |
|     shipping_address_id VARCHAR(255),
 | |
|     billing_address_id VARCHAR(255),
 | |
|     statement_descriptor_name VARCHAR(255),
 | |
|     statement_descriptor_suffix VARCHAR(255),
 | |
|     created_at TIMESTAMP NOT NULL,
 | |
|     modified_at TIMESTAMP NOT NULL,
 | |
|     last_synced TIMESTAMP,
 | |
|     setup_future_usage "FutureUsage",
 | |
|     off_session BOOLEAN,
 | |
|     client_secret VARCHAR(255)
 | |
| );
 | |
| 
 | |
| CREATE TABLE payment_methods (
 | |
|     id SERIAL PRIMARY KEY,
 | |
|     customer_id VARCHAR(255) NOT NULL,
 | |
|     merchant_id VARCHAR(255) NOT NULL,
 | |
|     payment_method_id VARCHAR(255) NOT NULL,
 | |
|     accepted_currency "Currency" [ ],
 | |
|     scheme VARCHAR(255),
 | |
|     token VARCHAR(255),
 | |
|     cardholder_name VARCHAR(255),
 | |
|     issuer_name VARCHAR(255),
 | |
|     issuer_country VARCHAR(255),
 | |
|     payer_country TEXT [ ],
 | |
|     is_stored BOOLEAN,
 | |
|     swift_code VARCHAR(255),
 | |
|     direct_debit_token VARCHAR(255),
 | |
|     network_transaction_id VARCHAR(255),
 | |
|     created_at TIMESTAMP NOT NULL,
 | |
|     last_modified TIMESTAMP NOT NULL,
 | |
|     payment_method "PaymentMethodType" NOT NULL,
 | |
|     payment_method_type "PaymentMethodSubType",
 | |
|     payment_method_issuer VARCHAR(255),
 | |
|     payment_method_issuer_code "PaymentMethodIssuerCode"
 | |
| );
 | |
| 
 | |
| CREATE TABLE process_tracker (
 | |
|     id VARCHAR(127) PRIMARY KEY,
 | |
|     NAME VARCHAR(255),
 | |
|     tag TEXT [ ] NOT NULL DEFAULT '{}'::TEXT [ ],
 | |
|     runner VARCHAR(255),
 | |
|     retry_count INTEGER NOT NULL,
 | |
|     schedule_time TIMESTAMP,
 | |
|     rule VARCHAR(255) NOT NULL,
 | |
|     tracking_data JSON NOT NULL,
 | |
|     business_status VARCHAR(255) NOT NULL,
 | |
|     status "ProcessTrackerStatus" NOT NULL,
 | |
|     event TEXT [ ] NOT NULL DEFAULT '{}'::TEXT [ ],
 | |
|     created_at TIMESTAMP NOT NULL DEFAULT now(),
 | |
|     updated_at TIMESTAMP NOT NULL DEFAULT now()
 | |
| );
 | |
| 
 | |
| CREATE TABLE refund (
 | |
|     id SERIAL PRIMARY KEY,
 | |
|     internal_reference_id VARCHAR(255) NOT NULL,
 | |
|     refund_id VARCHAR(255) NOT NULL,
 | |
|     payment_id VARCHAR(255) NOT NULL,
 | |
|     merchant_id VARCHAR(255) NOT NULL,
 | |
|     transaction_id VARCHAR(255) NOT NULL,
 | |
|     connector VARCHAR(255) NOT NULL,
 | |
|     pg_refund_id VARCHAR(255),
 | |
|     external_reference_id VARCHAR(255),
 | |
|     refund_type "RefundType" NOT NULL,
 | |
|     total_amount INTEGER NOT NULL,
 | |
|     currency "Currency" NOT NULL,
 | |
|     refund_amount INTEGER NOT NULL,
 | |
|     refund_status "RefundStatus" NOT NULL,
 | |
|     sent_to_gateway BOOLEAN NOT NULL DEFAULT FALSE,
 | |
|     refund_error_message TEXT,
 | |
|     metadata JSON,
 | |
|     refund_arn VARCHAR(255),
 | |
|     created_at TIMESTAMP NOT NULL,
 | |
|     modified_at TIMESTAMP NOT NULL,
 | |
|     description VARCHAR(255)
 | |
| );
 | |
| 
 | |
| CREATE TABLE temp_card (
 | |
|     id SERIAL PRIMARY KEY,
 | |
|     date_created TIMESTAMP NOT NULL,
 | |
|     txn_id VARCHAR(255),
 | |
|     card_info JSON
 | |
| );
 | |
| 
 | |
| -- Indices
 | |
| CREATE INDEX customers_created_at_index ON customers (created_at);
 | |
| 
 | |
| CREATE UNIQUE INDEX merchant_account_api_key_index ON merchant_account (api_key);
 | |
| 
 | |
| CREATE UNIQUE INDEX merchant_account_merchant_id_index ON merchant_account (merchant_id);
 | |
| 
 | |
| CREATE UNIQUE INDEX merchant_account_publishable_key_index ON merchant_account (publishable_key);
 | |
| 
 | |
| CREATE INDEX merchant_connector_account_connector_type_index ON merchant_connector_account (connector_type);
 | |
| 
 | |
| CREATE INDEX merchant_connector_account_merchant_id_index ON merchant_connector_account (merchant_id);
 | |
| 
 | |
| CREATE UNIQUE INDEX payment_attempt_payment_id_merchant_id_index ON payment_attempt (payment_id, merchant_id);
 | |
| 
 | |
| CREATE UNIQUE INDEX payment_intent_payment_id_merchant_id_index ON payment_intent (payment_id, merchant_id);
 | |
| 
 | |
| CREATE INDEX payment_methods_created_at_index ON payment_methods (created_at);
 | |
| 
 | |
| CREATE INDEX payment_methods_customer_id_index ON payment_methods (customer_id);
 | |
| 
 | |
| CREATE INDEX payment_methods_last_modified_index ON payment_methods (last_modified);
 | |
| 
 | |
| CREATE INDEX payment_methods_payment_method_id_index ON payment_methods (payment_method_id);
 | |
| 
 | |
| CREATE INDEX refund_internal_reference_id_index ON refund (internal_reference_id);
 | |
| 
 | |
| CREATE INDEX refund_payment_id_merchant_id_index ON refund (payment_id, merchant_id);
 | |
| 
 | |
| CREATE INDEX refund_refund_id_index ON refund (refund_id);
 | |
| 
 | |
| CREATE UNIQUE INDEX refund_refund_id_merchant_id_index ON refund (refund_id, merchant_id);
 | |
| 
 | |
| CREATE INDEX temp_card_txn_id_index ON temp_card (txn_id);
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2022-09-29-093314_create_seed_data/up.sql
 | |
| INSERT INTO merchant_account (
 | |
|         merchant_id,
 | |
|         api_key,
 | |
|         merchant_name,
 | |
|         merchant_details,
 | |
|         custom_routing_rules,
 | |
|         publishable_key
 | |
|     )
 | |
| VALUES (
 | |
|         'juspay_merchant',
 | |
|         'MySecretApiKey',
 | |
|         'Juspay Merchant',
 | |
|         '{ "primary_email": "merchant@juspay.in" }',
 | |
|         '[ { "connectors_pecking_order": [ "stripe" ] } ]',
 | |
|         'pk_MyPublicApiKey'
 | |
|     );
 | |
| 
 | |
| INSERT INTO merchant_connector_account (
 | |
|         merchant_id,
 | |
|         connector_name,
 | |
|         connector_account_details
 | |
|     )
 | |
| VALUES (
 | |
|         'juspay_merchant',
 | |
|         'stripe',
 | |
|         '{ "auth_type": "HeaderKey", "api_key": "Basic MyStripeApiKey" }'
 | |
|     );
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2022-10-20-100628_add_cancellation_reason/up.sql
 | |
| ALTER TABLE payment_attempt
 | |
| ADD COLUMN cancellation_reason VARCHAR(255);
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2022-10-26-101016_update_payment_attempt_status_intent_status/up.sql
 | |
| -- Your SQL goes here
 | |
| ALTER TABLE payment_attempt ADD IF NOT EXISTS amount_to_capture INTEGER;
 | |
| ALTER TYPE "CaptureMethod" ADD VALUE 'manual_multiple' AFTER 'manual';
 | |
| ALTER TYPE "IntentStatus" ADD VALUE 'requires_capture';
 | |
| 
 | |
| 
 | |
| -- File: migrations/2022-11-03-130214_create_connector_response_table/up.sql
 | |
| -- Your SQL goes here
 | |
| CREATE TABLE connector_response (
 | |
|     id SERIAL PRIMARY KEY,
 | |
|     payment_id VARCHAR(255) NOT NULL,
 | |
|     merchant_id VARCHAR(255) NOT NULL,
 | |
|     txn_id VARCHAR(255) NOT NULL,
 | |
|     created_at TIMESTAMP NOT NULL DEFAULT now()::TIMESTAMP,
 | |
|     modified_at TIMESTAMP NOT NULL DEFAULT now()::TIMESTAMP,
 | |
|     connector_name VARCHAR(32) NOT NULL,
 | |
|     connector_transaction_id VARCHAR(255),
 | |
|     authentication_data JSON,
 | |
|     encoded_data TEXT
 | |
| );
 | |
| 
 | |
| CREATE UNIQUE INDEX connector_response_id_index ON connector_response (payment_id, merchant_id, txn_id);
 | |
| 
 | |
| 
 | |
| -- File: migrations/2022-11-08-101705_add_cancel_to_payment_intent_status/up.sql
 | |
| -- Your SQL goes here
 | |
| ALTER TYPE "IntentStatus" ADD VALUE 'cancelled' after 'failed';
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2022-11-21-133803_add_mandate_id_in_payment_attempt/up.sql
 | |
| -- Your SQL goes here
 | |
| ALTER TABLE payment_attempt ADD IF NOT EXISTS mandate_id VARCHAR(255);
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2022-11-24-095709_add_browser_info_to_payment_attempt/up.sql
 | |
| ALTER TABLE payment_attempt
 | |
| ADD COLUMN browser_info JSONB DEFAULT NULL;
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2022-11-25-121143_add_paypal_pmt/up.sql
 | |
| -- Your SQL goes here
 | |
| ALTER TYPE "PaymentMethodType" ADD VALUE 'paypal' after 'pay_later';
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2022-11-30-084736_update-index-in-mca/up.sql
 | |
| CREATE UNIQUE INDEX merchant_connector_account_merchant_id_connector_name_index ON merchant_connector_account (merchant_id, connector_name);
 | |
| 
 | |
| 
 | |
| -- File: migrations/2022-12-05-090521_single_use_mandate_fields/up.sql
 | |
| -- Your SQL goes here
 | |
| ALTER TABLE mandate
 | |
| ADD IF NOT EXISTS single_use_amount INTEGER DEFAULT NULL,
 | |
| ADD IF NOT EXISTS single_use_currency "Currency" DEFAULT NULL;
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2022-12-07-055441_add_use_kv_to_merchant_account/up.sql
 | |
| -- Your SQL goes here
 | |
| 
 | |
| CREATE TYPE "MerchantStorageScheme" AS ENUM (
 | |
|     'postgres_only',
 | |
|     'redis_kv'
 | |
| );
 | |
| 
 | |
| ALTER TABLE merchant_account ADD COLUMN storage_scheme "MerchantStorageScheme" NOT NULL DEFAULT 'postgres_only';
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2022-12-07-133736_make_connector_field_optional/up.sql
 | |
| ALTER TABLE payment_attempt ALTER COLUMN connector DROP NOT NULL;
 | |
| ALTER TABLE connector_response ALTER COLUMN connector_name DROP NOT NULL;
 | |
| 
 | |
| 
 | |
| -- File: migrations/2022-12-09-102635_mandate-connector-and-amount/up.sql
 | |
| -- Your SQL goes here
 | |
| ALTER TABLE mandate
 | |
| RENAME COLUMN single_use_amount TO mandate_amount;
 | |
| ALTER TABLE mandate
 | |
| RENAME COLUMN single_use_currency TO mandate_currency;
 | |
| ALTER TABLE mandate
 | |
| ADD IF NOT EXISTS amount_captured INTEGER DEFAULT NULL,
 | |
| ADD IF NOT EXISTS connector VARCHAR(255) NOT NULL DEFAULT 'dummy',
 | |
| ADD IF NOT EXISTS connector_mandate_id VARCHAR(255) DEFAULT NULL;
 | |
| 
 | |
| 
 | |
| -- File: migrations/2022-12-10-123613_update_address_and_customer/up.sql
 | |
| -- Your SQL goes here
 | |
| ALTER TABLE address
 | |
| ADD COLUMN customer_id VARCHAR(255) NOT NULL,
 | |
| ADD COLUMN merchant_id VARCHAR(255) NOT NULL;
 | |
| 
 | |
| CREATE INDEX address_customer_id_merchant_id_index ON address (customer_id, merchant_id);
 | |
| 
 | |
| ALTER TABLE customers DROP COLUMN address;
 | |
| 
 | |
| 
 | |
| -- File: migrations/2022-12-11-190755_update_mock_up/up.sql
 | |
| -- Your SQL goes here
 | |
| ALTER TABLE locker_mock_up
 | |
| ADD COLUMN card_cvc VARCHAR(8);
 | |
| 
 | |
| 
 | |
| -- File: migrations/2022-12-12-132936_reverse_lookup/up.sql
 | |
| CREATE TABLE reverse_lookup (
 | |
|     lookup_id VARCHAR(255) NOT NULL PRIMARY KEY,
 | |
|     sk_id VARCHAR(50) NOT NULL,
 | |
|     pk_id VARCHAR(255) NOT NULL,
 | |
|     source VARCHAR(30) NOT NULL
 | |
| );
 | |
| 
 | |
| CREATE INDEX lookup_id_index ON reverse_lookup (lookup_id);
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2022-12-13-170152_add_connector_metadata/up.sql
 | |
| ALTER TABLE merchant_connector_account ADD COLUMN metadata JSONB DEFAULT NULL;
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2022-12-14-074547_error-code-in-payment_attempt/up.sql
 | |
| -- Your SQL goes here
 | |
| ALTER TABLE payment_attempt
 | |
| ADD IF NOT EXISTS error_code VARCHAR(255) DEFAULT NULL;
 | |
| 
 | |
| 
 | |
| -- File: migrations/2022-12-14-090419_add_payment_token_in_payment_attempt/up.sql
 | |
| ALTER TABLE payment_attempt ADD COLUMN payment_token VARCHAR(255);
 | |
| 
 | |
| 
 | |
| -- File: migrations/2022-12-14-092540_i32_to_i64/up.sql
 | |
| -- Your SQL goes here
 | |
| ALTER TABLE mandate
 | |
|     ALTER COLUMN mandate_amount TYPE bigint,
 | |
|     ALTER COLUMN amount_captured TYPE bigint;
 | |
| 
 | |
| ALTER TABLE payment_attempt
 | |
|     ALTER COLUMN amount TYPE bigint,
 | |
|     ALTER COLUMN offer_amount TYPE bigint,
 | |
|     ALTER COLUMN surcharge_amount TYPE bigint,
 | |
|     ALTER COLUMN tax_amount TYPE bigint,
 | |
|     ALTER COLUMN amount_to_capture TYPE bigint;
 | |
| 
 | |
| ALTER TABLE payment_intent
 | |
|     ALTER COLUMN amount TYPE bigint,
 | |
|     ALTER COLUMN amount_captured TYPE bigint;
 | |
| 
 | |
| ALTER TABLE refund
 | |
|     ALTER COLUMN total_amount TYPE bigint,
 | |
|     ALTER COLUMN refund_amount TYPE bigint;
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2022-12-14-162701_update_payment_method/up.sql
 | |
| -- Your SQL goes here
 | |
| ALTER TABLE payment_methods
 | |
| ADD COLUMN metadata JSON;
 | |
| 
 | |
| 
 | |
| -- File: migrations/2022-12-19-085322_rename_txn_id_to_attempt_id/up.sql
 | |
| ALTER TABLE payment_attempt
 | |
| RENAME COLUMN txn_id to attempt_id;
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2022-12-19-085739_add_attempt_id_to_refund/up.sql
 | |
| ALTER TABLE refund ADD COLUMN attempt_id VARCHAR(64) NOT NULL;
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2022-12-20-065945_reduce_size_of_varchar_columns/up.sql
 | |
| ALTER TABLE address
 | |
|     ALTER COLUMN address_id TYPE VARCHAR(64),
 | |
|     ALTER COLUMN city TYPE VARCHAR(128),
 | |
|     ALTER COLUMN country TYPE VARCHAR(64),
 | |
|     ALTER COLUMN state TYPE VARCHAR(128),
 | |
|     ALTER COLUMN zip TYPE VARCHAR(16),
 | |
|     ALTER COLUMN phone_number TYPE VARCHAR(32),
 | |
|     ALTER COLUMN country_code TYPE VARCHAR(8),
 | |
|     ALTER COLUMN customer_id TYPE VARCHAR(64),
 | |
|     ALTER COLUMN merchant_id TYPE VARCHAR(64);
 | |
| 
 | |
| ALTER TABLE connector_response RENAME COLUMN txn_id TO attempt_id;
 | |
| 
 | |
| ALTER TABLE connector_response
 | |
|     ALTER COLUMN payment_id TYPE VARCHAR(64),
 | |
|     ALTER COLUMN merchant_id TYPE VARCHAR(64),
 | |
|     ALTER COLUMN attempt_id TYPE VARCHAR(64),
 | |
|     ALTER COLUMN connector_name TYPE VARCHAR(64),
 | |
|     ALTER COLUMN connector_transaction_id TYPE VARCHAR(128);
 | |
| 
 | |
| ALTER TABLE customers
 | |
|     ALTER COLUMN customer_id TYPE VARCHAR(64),
 | |
|     ALTER COLUMN merchant_id TYPE VARCHAR(64),
 | |
|     ALTER COLUMN phone TYPE VARCHAR(32),
 | |
|     ALTER COLUMN phone_country_code TYPE VARCHAR(8);
 | |
| 
 | |
| ALTER TABLE events
 | |
|     ALTER COLUMN event_id TYPE VARCHAR(64),
 | |
|     ALTER COLUMN intent_reference_id TYPE VARCHAR(64),
 | |
|     ALTER COLUMN primary_object_id TYPE VARCHAR(64);
 | |
| 
 | |
| ALTER TABLE mandate RENAME COLUMN previous_transaction_id to previous_attempt_id;
 | |
| 
 | |
| ALTER TABLE mandate
 | |
|     ALTER COLUMN mandate_id TYPE VARCHAR(64),
 | |
|     ALTER COLUMN customer_id TYPE VARCHAR(64),
 | |
|     ALTER COLUMN merchant_id TYPE VARCHAR(64),
 | |
|     ALTER COLUMN payment_method_id TYPE VARCHAR(64),
 | |
|     ALTER COLUMN customer_ip_address TYPE VARCHAR(64),
 | |
|     ALTER COLUMN network_transaction_id TYPE VARCHAR(128),
 | |
|     ALTER COLUMN previous_attempt_id TYPE VARCHAR(64),
 | |
|     ALTER COLUMN connector TYPE VARCHAR(64),
 | |
|     ALTER COLUMN connector_mandate_id TYPE VARCHAR(128);
 | |
| 
 | |
| ALTER TABLE merchant_account
 | |
|     ALTER COLUMN merchant_id TYPE VARCHAR(64),
 | |
|     ALTER COLUMN api_key TYPE VARCHAR(128),
 | |
|     ALTER COLUMN merchant_name TYPE VARCHAR(128),
 | |
|     ALTER COLUMN parent_merchant_id TYPE VARCHAR(64),
 | |
|     ALTER COLUMN publishable_key TYPE VARCHAR(128);
 | |
| 
 | |
| ALTER TABLE merchant_connector_account
 | |
|     ALTER COLUMN merchant_id TYPE VARCHAR(64),
 | |
|     ALTER COLUMN connector_name TYPE VARCHAR(64);
 | |
| 
 | |
| ALTER TABLE payment_attempt
 | |
|     ALTER COLUMN payment_id TYPE VARCHAR(64),
 | |
|     ALTER COLUMN merchant_id TYPE VARCHAR(64),
 | |
|     ALTER COLUMN attempt_id TYPE VARCHAR(64),
 | |
|     ALTER COLUMN connector TYPE VARCHAR(64),
 | |
|     ALTER COLUMN payment_method_id TYPE VARCHAR(64),
 | |
|     ALTER COLUMN connector_transaction_id TYPE VARCHAR(128),
 | |
|     ALTER COLUMN mandate_id TYPE VARCHAR(64),
 | |
|     ALTER COLUMN payment_token TYPE VARCHAR(128);
 | |
| 
 | |
| ALTER TABLE payment_intent
 | |
|     ALTER COLUMN payment_id TYPE VARCHAR(64),
 | |
|     ALTER COLUMN merchant_id TYPE VARCHAR(64),
 | |
|     ALTER COLUMN customer_id TYPE VARCHAR(64),
 | |
|     ALTER COLUMN connector_id TYPE VARCHAR(64),
 | |
|     ALTER COLUMN shipping_address_id TYPE VARCHAR(64),
 | |
|     ALTER COLUMN billing_address_id TYPE VARCHAR(64),
 | |
|     ALTER COLUMN client_secret TYPE VARCHAR(128);
 | |
| 
 | |
| ALTER TABLE payment_methods DROP COLUMN network_transaction_id;
 | |
| 
 | |
| ALTER TABLE payment_methods
 | |
|     ALTER COLUMN customer_id TYPE VARCHAR(64),
 | |
|     ALTER COLUMN merchant_id TYPE VARCHAR(64),
 | |
|     ALTER COLUMN payment_method_id TYPE VARCHAR(64),
 | |
|     ALTER COLUMN scheme TYPE VARCHAR(32),
 | |
|     ALTER COLUMN token TYPE VARCHAR(128),
 | |
|     ALTER COLUMN issuer_name TYPE VARCHAR(64),
 | |
|     ALTER COLUMN issuer_country TYPE VARCHAR(64),
 | |
|     ALTER COLUMN swift_code TYPE VARCHAR(32),
 | |
|     ALTER COLUMN direct_debit_token TYPE VARCHAR(128),
 | |
|     ALTER COLUMN payment_method_issuer TYPE VARCHAR(128);
 | |
| 
 | |
| ALTER TABLE process_tracker
 | |
|     ALTER COLUMN name TYPE VARCHAR(64),
 | |
|     ALTER COLUMN runner TYPE VARCHAR(64);
 | |
| 
 | |
| ALTER TABLE refund RENAME COLUMN transaction_id to connector_transaction_id;
 | |
| ALTER TABLE refund RENAME COLUMN pg_refund_id to connector_refund_id;
 | |
| 
 | |
| ALTER TABLE refund
 | |
|     ALTER COLUMN internal_reference_id TYPE VARCHAR(64),
 | |
|     ALTER COLUMN refund_id TYPE VARCHAR(64),
 | |
|     ALTER COLUMN payment_id TYPE VARCHAR(64),
 | |
|     ALTER COLUMN merchant_id TYPE VARCHAR(64),
 | |
|     ALTER COLUMN connector_transaction_id TYPE VARCHAR(128),
 | |
|     ALTER COLUMN connector TYPE VARCHAR(64),
 | |
|     ALTER COLUMN connector_refund_id TYPE VARCHAR(128),
 | |
|     ALTER COLUMN external_reference_id TYPE VARCHAR(64),
 | |
|     ALTER COLUMN refund_arn TYPE VARCHAR(128);
 | |
| 
 | |
| ALTER TABLE reverse_lookup
 | |
|     ALTER COLUMN lookup_id TYPE VARCHAR(128),
 | |
|     ALTER COLUMN sk_id TYPE VARCHAR(128),
 | |
|     ALTER COLUMN pk_id TYPE VARCHAR(128),
 | |
|     ALTER COLUMN source TYPE VARCHAR(128);
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2022-12-21-071825_add_refund_reason/up.sql
 | |
| ALTER TABLE REFUND ADD COLUMN refund_reason VARCHAR(255) DEFAULT NULL;
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2022-12-21-124904_remove_metadata_default_as_null/up.sql
 | |
| ALTER TABLE payment_intent ALTER COLUMN metadata DROP DEFAULT;
 | |
| 
 | |
| 
 | |
| -- File: migrations/2022-12-22-091431_attempt_status_rename/up.sql
 | |
| ALTER TYPE "AttemptStatus" RENAME VALUE 'juspay_declined' TO 'router_declined';
 | |
| ALTER TYPE "AttemptStatus" RENAME VALUE 'pending_vbv' TO 'authentication_successful';
 | |
| ALTER TYPE "AttemptStatus" RENAME VALUE 'vbv_successful' TO 'authentication_pending';
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2022-12-27-172643_update_locker_mock_up/up.sql
 | |
| -- Your SQL goes here
 | |
| ALTER TABLE locker_mock_up
 | |
| ADD COLUMN payment_method_id VARCHAR(64);
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-01-03-122401_update_merchant_account/up.sql
 | |
| -- Your SQL goes here
 | |
| ALTER TABLE merchant_account
 | |
| ADD COLUMN locker_id VARCHAR(64);
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-01-10-035412_connector-metadata-payment-attempt/up.sql
 | |
| -- Your SQL goes here
 | |
| ALTER TABLE payment_attempt ADD COLUMN connector_metadata JSONB DEFAULT NULL;
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-01-11-134448_add_metadata_to_merchant_account/up.sql
 | |
| -- Your SQL goes here
 | |
| ALTER TABLE merchant_account ADD COLUMN metadata JSONB DEFAULT NULL;
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-01-12-084710_update_merchant_routing_algorithm/up.sql
 | |
| -- Your SQL goes here
 | |
| ALTER TABLE merchant_account DROP COLUMN routing_algorithm;
 | |
| ALTER TABLE merchant_account DROP COLUMN custom_routing_rules;
 | |
| ALTER TABLE merchant_account ADD COLUMN routing_algorithm JSON;
 | |
| DROP TYPE "RoutingAlgorithm";
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-01-12-140107_drop_temp_card/up.sql
 | |
| DROP TABLE temp_card;
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-01-19-122511_add_refund_error_code/up.sql
 | |
| ALTER TABLE refund
 | |
| ADD IF NOT EXISTS refund_error_code TEXT DEFAULT NULL;
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-01-20-113235_add_attempt_id_to_payment_intent/up.sql
 | |
| -- Your SQL goes here
 | |
| ALTER TABLE payment_intent ADD COLUMN active_attempt_id VARCHAR(64) NOT NULL DEFAULT 'xxx';
 | |
| 
 | |
| UPDATE payment_intent SET active_attempt_id = payment_attempt.attempt_id from payment_attempt where payment_intent.active_attempt_id = payment_attempt.payment_id;
 | |
| 
 | |
| CREATE UNIQUE INDEX payment_attempt_payment_id_merchant_id_attempt_id_index ON payment_attempt (payment_id, merchant_id, attempt_id);
 | |
| 
 | |
| -- Because payment_attempt table can have rows with same payment_id and merchant_id, this index is dropped.
 | |
| DROP index payment_attempt_payment_id_merchant_id_index;
 | |
| 
 | |
| CREATE INDEX payment_attempt_payment_id_merchant_id_index ON payment_attempt (payment_id, merchant_id);
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-02-01-135102_create_api_keys_table/up.sql
 | |
| CREATE TABLE api_keys (
 | |
|     key_id VARCHAR(64) NOT NULL PRIMARY KEY,
 | |
|     merchant_id VARCHAR(64) NOT NULL,
 | |
|     NAME VARCHAR(64) NOT NULL,
 | |
|     description VARCHAR(256) DEFAULT NULL,
 | |
|     hash_key VARCHAR(64) NOT NULL,
 | |
|     hashed_api_key VARCHAR(128) NOT NULL,
 | |
|     prefix VARCHAR(16) NOT NULL,
 | |
|     created_at TIMESTAMP NOT NULL DEFAULT now()::TIMESTAMP,
 | |
|     expires_at TIMESTAMP DEFAULT NULL,
 | |
|     last_used TIMESTAMP DEFAULT NULL
 | |
| );
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-02-02-055700_add_payment_issuer_and_experience_in_payment_attempt/up.sql
 | |
| -- Your SQL goes here
 | |
| ALTER TABLE payment_attempt
 | |
| ADD COLUMN IF NOT EXISTS payment_issuer VARCHAR(50);
 | |
| 
 | |
| ALTER TABLE payment_attempt
 | |
| ADD COLUMN IF NOT EXISTS payment_experience VARCHAR(50);
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-02-02-062215_remove_redirect_and_payment_flow_from_payment_attempt/up.sql
 | |
| ALTER TABLE payment_attempt DROP COLUMN IF EXISTS redirect;
 | |
| 
 | |
| ALTER TABLE payment_attempt DROP COLUMN IF EXISTS payment_flow;
 | |
| 
 | |
| DROP TYPE IF EXISTS "PaymentFlow";
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-02-07-070512_change_merchant_connector_id_data_type/up.sql
 | |
| ALTER TABLE merchant_connector_account
 | |
| ALTER COLUMN merchant_connector_id TYPE VARCHAR(128) USING merchant_connector_id::varchar;
 | |
| 
 | |
| 
 | |
| ALTER TABLE merchant_connector_account
 | |
| ALTER COLUMN merchant_connector_id DROP DEFAULT;
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-02-09-093400_add_bank_redirect/up.sql
 | |
| -- Your SQL goes here
 | |
| ALTER TYPE "PaymentMethodType" ADD VALUE 'bank_redirect' after 'paypal';
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-02-10-083146_make_payment_method_type_as_text/up.sql
 | |
| -- Your SQL goes here
 | |
| ALTER TABLE payment_methods
 | |
| ALTER COLUMN payment_method_type TYPE VARCHAR(64);
 | |
| 
 | |
| ALTER TABLE payment_attempt
 | |
| ADD COLUMN payment_method_type VARCHAR(64);
 | |
| 
 | |
| DROP TYPE IF EXISTS "PaymentMethodSubType";
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-02-20-101809_update_merchant_connector_account/up.sql
 | |
| ALTER TABLE merchant_connector_account
 | |
| ADD COLUMN connector_label VARCHAR(255),
 | |
|     ADD COLUMN business_country VARCHAR(2) DEFAULT 'US' NOT NULL,
 | |
|     ADD COLUMN business_label VARCHAR(255) DEFAULT 'default' NOT NULL;
 | |
| 
 | |
| -- To backfill, use `US` as default country and `default` as the business_label
 | |
| UPDATE merchant_connector_account AS m
 | |
| SET connector_label = concat(
 | |
|         m.connector_name,
 | |
|         '_',
 | |
|         'US',
 | |
|         '_',
 | |
|         'default'
 | |
|     );
 | |
| 
 | |
| ALTER TABLE merchant_connector_account
 | |
| ALTER COLUMN connector_label
 | |
| SET NOT NULL,
 | |
|     ALTER COLUMN business_country DROP DEFAULT,
 | |
|     ALTER COLUMN business_label DROP DEFAULT;
 | |
| 
 | |
| DROP INDEX merchant_connector_account_merchant_id_connector_name_index;
 | |
| 
 | |
| CREATE UNIQUE INDEX merchant_connector_account_merchant_id_connector_label_index ON merchant_connector_account (merchant_id, connector_label);
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-02-21-065628_update_merchant_account/up.sql
 | |
| ALTER TABLE merchant_account
 | |
| ADD COLUMN IF NOT EXISTS primary_business_details JSON NOT NULL DEFAULT '{"country": ["US"], "business": ["default"]}';
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-02-21-094019_api_keys_remove_hash_key/up.sql
 | |
| ALTER TABLE api_keys DROP COLUMN hash_key;
 | |
| 
 | |
| /*
 | |
|  Once we've dropped the `hash_key` column, we cannot use the existing API keys
 | |
|  from the `api_keys` table anymore, as the `hash_key` is a random string that
 | |
|  we no longer have.
 | |
|  */
 | |
| TRUNCATE TABLE api_keys;
 | |
| 
 | |
| ALTER TABLE api_keys
 | |
| ADD CONSTRAINT api_keys_hashed_api_key_key UNIQUE (hashed_api_key);
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-02-22-100331_rename_pm_type_enum/up.sql
 | |
| -- Your SQL goes here
 | |
| ALTER TABLE payment_attempt
 | |
| ALTER COLUMN payment_method TYPE VARCHAR;
 | |
| 
 | |
| ALTER TABLE payment_methods
 | |
| ALTER COLUMN payment_method TYPE VARCHAR;
 | |
| 
 | |
| ALTER TABLE payment_methods
 | |
| ALTER COLUMN payment_method_type TYPE VARCHAR;
 | |
| 
 | |
| ALTER TABLE payment_attempt DROP COLUMN payment_issuer;
 | |
| 
 | |
| ALTER TABLE payment_attempt
 | |
| ADD COLUMN payment_method_data JSONB;
 | |
| 
 | |
| DROP TYPE "PaymentMethodType";
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-02-28-072631_ang-currency/up.sql
 | |
| -- Your SQL goes here
 | |
| ALTER TYPE "Currency" ADD VALUE 'ANG' after 'AMD';
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-02-28-112730_add_refund_webhook_types/up.sql
 | |
| -- Your SQL goes here
 | |
| ALTER TYPE "EventClass" ADD VALUE 'refunds';
 | |
| 
 | |
| ALTER TYPE "EventObjectType" ADD VALUE 'refund_details';
 | |
| 
 | |
| ALTER TYPE "EventType" ADD VALUE 'refund_succeeded';
 | |
| 
 | |
| ALTER TYPE "EventType" ADD VALUE 'refund_failed';
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-03-04-114058_remove_api_key_column_merchant_account_table/up.sql
 | |
| ALTER TABLE merchant_account DROP COLUMN api_key;
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-03-07-141638_make_payment_attempt_connector_json/up.sql
 | |
| -- Alter column type to json
 | |
| -- as well as the connector.
 | |
| ALTER TABLE payment_attempt
 | |
| ALTER COLUMN connector TYPE JSONB
 | |
| USING jsonb_build_object(
 | |
|     'routed_through', connector,
 | |
|     'algorithm',      NULL
 | |
| );
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-03-14-123541_add_cards_info_table/up.sql
 | |
| -- Your SQL goes here
 | |
| CREATE TABLE cards_info (
 | |
|     card_iin VARCHAR(16) PRIMARY KEY,
 | |
|     card_issuer TEXT,
 | |
|     card_network TEXT,
 | |
|     card_type TEXT,
 | |
|     card_subtype TEXT,
 | |
|     card_issuing_country TEXT,
 | |
|     bank_code_id VARCHAR(32),
 | |
|     bank_code VARCHAR(32),
 | |
|     country_code VARCHAR(32),
 | |
|     date_created TIMESTAMP NOT NULL,
 | |
|     last_updated TIMESTAMP,
 | |
|     last_updated_provider TEXT
 | |
| );
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-03-15-082312_add_connector_txn_id_merchant_id_index_in_payment_attempt/up.sql
 | |
| -- Your SQL goes here
 | |
| CREATE INDEX payment_attempt_connector_transaction_id_merchant_id_index ON payment_attempt (connector_transaction_id, merchant_id);
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-03-15-185959_add_dispute_table/up.sql
 | |
| CREATE TYPE "DisputeStage" AS ENUM ('pre_dispute', 'dispute', 'pre_arbitration');
 | |
| 
 | |
| CREATE TYPE "DisputeStatus" AS ENUM ('dispute_opened', 'dispute_expired', 'dispute_accepted', 'dispute_cancelled', 'dispute_challenged', 'dispute_won', 'dispute_lost');
 | |
| 
 | |
| CREATE TABLE dispute (
 | |
|     id SERIAL PRIMARY KEY,
 | |
|     dispute_id VARCHAR(64) NOT NULL,
 | |
|     amount VARCHAR(255) NOT NULL,
 | |
|     currency VARCHAR(255) NOT NULL,
 | |
|     dispute_stage "DisputeStage" NOT NULL,
 | |
|     dispute_status "DisputeStatus" NOT NULL,
 | |
|     payment_id VARCHAR(255) NOT NULL,
 | |
|     attempt_id VARCHAR(64) NOT NULL,
 | |
|     merchant_id VARCHAR(255) NOT NULL,
 | |
|     connector_status VARCHAR(255) NOT NULL,
 | |
|     connector_dispute_id VARCHAR(255) NOT NULL,
 | |
|     connector_reason VARCHAR(255),
 | |
|     connector_reason_code VARCHAR(255),
 | |
|     challenge_required_by VARCHAR(255),
 | |
|     dispute_created_at VARCHAR(255),
 | |
|     updated_at VARCHAR(255),
 | |
|     created_at TIMESTAMP NOT NULL DEFAULT now()::TIMESTAMP,
 | |
|     modified_at TIMESTAMP NOT NULL DEFAULT now()::TIMESTAMP
 | |
| );
 | |
| 
 | |
| CREATE UNIQUE INDEX merchant_id_dispute_id_index ON dispute (merchant_id, dispute_id);
 | |
| 
 | |
| CREATE UNIQUE INDEX merchant_id_payment_id_connector_dispute_id_index ON dispute (merchant_id, payment_id, connector_dispute_id);
 | |
| 
 | |
| CREATE INDEX dispute_status_index ON dispute (dispute_status);
 | |
| 
 | |
| CREATE INDEX dispute_stage_index ON dispute (dispute_stage);
 | |
| 
 | |
| ALTER TYPE "EventClass" ADD VALUE 'disputes';
 | |
| 
 | |
| ALTER TYPE "EventObjectType" ADD VALUE 'dispute_details';
 | |
| 
 | |
| ALTER TYPE "EventType" ADD VALUE 'dispute_opened';
 | |
| ALTER TYPE "EventType" ADD VALUE 'dispute_expired';
 | |
| ALTER TYPE "EventType" ADD VALUE 'dispute_accepted';
 | |
| ALTER TYPE "EventType" ADD VALUE 'dispute_cancelled';
 | |
| ALTER TYPE "EventType" ADD VALUE 'dispute_challenged';
 | |
| ALTER TYPE "EventType" ADD VALUE 'dispute_won';
 | |
| ALTER TYPE "EventType" ADD VALUE 'dispute_lost';
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-03-16-105114_add_data_collection_status/up.sql
 | |
| ALTER TYPE "AttemptStatus" ADD VALUE IF NOT EXISTS 'device_data_collection_pending';
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-03-23-095309_add_business_sub_label_to_mca/up.sql
 | |
| ALTER TABLE merchant_connector_account
 | |
| ADD COLUMN IF NOT EXISTS business_sub_label VARCHAR(64) DEFAULT 'default';
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-03-23-123920_add_business_label_and_country_to_pi/up.sql
 | |
| ALTER TABLE payment_intent
 | |
| ADD COLUMN IF NOT EXISTS business_country VARCHAR(2) NOT NULL DEFAULT 'US',
 | |
|     ADD COLUMN IF NOT EXISTS business_label VARCHAR(64) NOT NULL DEFAULT 'default';
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-03-26-163105_add_unresolved_status/up.sql
 | |
| ALTER TYPE "AttemptStatus" ADD VALUE IF NOT EXISTS 'unresolved';
 | |
| ALTER TYPE "IntentStatus" ADD VALUE IF NOT EXISTS 'requires_merchant_action' after 'requires_customer_action';
 | |
| ALTER TYPE "EventType" ADD VALUE IF NOT EXISTS 'action_required';
 | |
| ALTER TYPE "EventType" ADD VALUE IF NOT EXISTS 'payment_processing';
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-03-27-091611_change_country_to_enum/up.sql
 | |
| CREATE TYPE "CountryCode" AS ENUM (
 | |
|     'AF',
 | |
|     'AX',
 | |
|     'AL',
 | |
|     'DZ',
 | |
|     'AS',
 | |
|     'AD',
 | |
|     'AO',
 | |
|     'AI',
 | |
|     'AQ',
 | |
|     'AG',
 | |
|     'AR',
 | |
|     'AM',
 | |
|     'AW',
 | |
|     'AU',
 | |
|     'AT',
 | |
|     'AZ',
 | |
|     'BS',
 | |
|     'BH',
 | |
|     'BD',
 | |
|     'BB',
 | |
|     'BY',
 | |
|     'BE',
 | |
|     'BZ',
 | |
|     'BJ',
 | |
|     'BM',
 | |
|     'BT',
 | |
|     'BO',
 | |
|     'BQ',
 | |
|     'BA',
 | |
|     'BW',
 | |
|     'BV',
 | |
|     'BR',
 | |
|     'IO',
 | |
|     'BN',
 | |
|     'BG',
 | |
|     'BF',
 | |
|     'BI',
 | |
|     'KH',
 | |
|     'CM',
 | |
|     'CA',
 | |
|     'CV',
 | |
|     'KY',
 | |
|     'CF',
 | |
|     'TD',
 | |
|     'CL',
 | |
|     'CN',
 | |
|     'CX',
 | |
|     'CC',
 | |
|     'CO',
 | |
|     'KM',
 | |
|     'CG',
 | |
|     'CD',
 | |
|     'CK',
 | |
|     'CR',
 | |
|     'CI',
 | |
|     'HR',
 | |
|     'CU',
 | |
|     'CW',
 | |
|     'CY',
 | |
|     'CZ',
 | |
|     'DK',
 | |
|     'DJ',
 | |
|     'DM',
 | |
|     'DO',
 | |
|     'EC',
 | |
|     'EG',
 | |
|     'SV',
 | |
|     'GQ',
 | |
|     'ER',
 | |
|     'EE',
 | |
|     'ET',
 | |
|     'FK',
 | |
|     'FO',
 | |
|     'FJ',
 | |
|     'FI',
 | |
|     'FR',
 | |
|     'GF',
 | |
|     'PF',
 | |
|     'TF',
 | |
|     'GA',
 | |
|     'GM',
 | |
|     'GE',
 | |
|     'DE',
 | |
|     'GH',
 | |
|     'GI',
 | |
|     'GR',
 | |
|     'GL',
 | |
|     'GD',
 | |
|     'GP',
 | |
|     'GU',
 | |
|     'GT',
 | |
|     'GG',
 | |
|     'GN',
 | |
|     'GW',
 | |
|     'GY',
 | |
|     'HT',
 | |
|     'HM',
 | |
|     'VA',
 | |
|     'HN',
 | |
|     'HK',
 | |
|     'HU',
 | |
|     'IS',
 | |
|     'IN',
 | |
|     'ID',
 | |
|     'IR',
 | |
|     'IQ',
 | |
|     'IE',
 | |
|     'IM',
 | |
|     'IL',
 | |
|     'IT',
 | |
|     'JM',
 | |
|     'JP',
 | |
|     'JE',
 | |
|     'JO',
 | |
|     'KZ',
 | |
|     'KE',
 | |
|     'KI',
 | |
|     'KP',
 | |
|     'KR',
 | |
|     'KW',
 | |
|     'KG',
 | |
|     'LA',
 | |
|     'LV',
 | |
|     'LB',
 | |
|     'LS',
 | |
|     'LR',
 | |
|     'LY',
 | |
|     'LI',
 | |
|     'LT',
 | |
|     'LU',
 | |
|     'MO',
 | |
|     'MK',
 | |
|     'MG',
 | |
|     'MW',
 | |
|     'MY',
 | |
|     'MV',
 | |
|     'ML',
 | |
|     'MT',
 | |
|     'MH',
 | |
|     'MQ',
 | |
|     'MR',
 | |
|     'MU',
 | |
|     'YT',
 | |
|     'MX',
 | |
|     'FM',
 | |
|     'MD',
 | |
|     'MC',
 | |
|     'MN',
 | |
|     'ME',
 | |
|     'MS',
 | |
|     'MA',
 | |
|     'MZ',
 | |
|     'MM',
 | |
|     'NA',
 | |
|     'NR',
 | |
|     'NP',
 | |
|     'NL',
 | |
|     'NC',
 | |
|     'NZ',
 | |
|     'NI',
 | |
|     'NE',
 | |
|     'NG',
 | |
|     'NU',
 | |
|     'NF',
 | |
|     'MP',
 | |
|     'NO',
 | |
|     'OM',
 | |
|     'PK',
 | |
|     'PW',
 | |
|     'PS',
 | |
|     'PA',
 | |
|     'PG',
 | |
|     'PY',
 | |
|     'PE',
 | |
|     'PH',
 | |
|     'PN',
 | |
|     'PL',
 | |
|     'PT',
 | |
|     'PR',
 | |
|     'QA',
 | |
|     'RE',
 | |
|     'RO',
 | |
|     'RU',
 | |
|     'RW',
 | |
|     'BL',
 | |
|     'SH',
 | |
|     'KN',
 | |
|     'LC',
 | |
|     'MF',
 | |
|     'PM',
 | |
|     'VC',
 | |
|     'WS',
 | |
|     'SM',
 | |
|     'ST',
 | |
|     'SA',
 | |
|     'SN',
 | |
|     'RS',
 | |
|     'SC',
 | |
|     'SL',
 | |
|     'SG',
 | |
|     'SX',
 | |
|     'SK',
 | |
|     'SI',
 | |
|     'SB',
 | |
|     'SO',
 | |
|     'ZA',
 | |
|     'GS',
 | |
|     'SS',
 | |
|     'ES',
 | |
|     'LK',
 | |
|     'SD',
 | |
|     'SR',
 | |
|     'SJ',
 | |
|     'SZ',
 | |
|     'SE',
 | |
|     'CH',
 | |
|     'SY',
 | |
|     'TW',
 | |
|     'TJ',
 | |
|     'TZ',
 | |
|     'TH',
 | |
|     'TL',
 | |
|     'TG',
 | |
|     'TK',
 | |
|     'TO',
 | |
|     'TT',
 | |
|     'TN',
 | |
|     'TR',
 | |
|     'TM',
 | |
|     'TC',
 | |
|     'TV',
 | |
|     'UG',
 | |
|     'UA',
 | |
|     'AE',
 | |
|     'GB',
 | |
|     'US',
 | |
|     'UM',
 | |
|     'UY',
 | |
|     'UZ',
 | |
|     'VU',
 | |
|     'VE',
 | |
|     'VN',
 | |
|     'VG',
 | |
|     'VI',
 | |
|     'WF',
 | |
|     'EH',
 | |
|     'YE',
 | |
|     'ZM',
 | |
|     'ZW'
 | |
| );
 | |
| 
 | |
| ALTER TABLE address
 | |
| ALTER COLUMN country TYPE "CountryCode" USING country::"CountryCode";
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-03-30-132338_add_start_end_date_for_mandates/up.sql
 | |
| ALTER TABLE mandate
 | |
| ADD IF NOT EXISTS start_date TIMESTAMP NULL,
 | |
| ADD IF NOT EXISTS end_date TIMESTAMP NULL,
 | |
| ADD COLUMN metadata JSONB DEFAULT NULL;
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-04-03-082335_update_mca_frm_configs/up.sql
 | |
| ALTER TABLE "merchant_connector_account" ADD COLUMN frm_configs jsonb;
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-04-04-061926_add_dispute_api_schema/up.sql
 | |
| -- Your SQL goes here
 | |
| CREATE TABLE file_metadata (
 | |
|     file_id VARCHAR(64) NOT NULL,
 | |
|     merchant_id VARCHAR(255) NOT NULL,
 | |
|     file_name VARCHAR(255),
 | |
|     file_size INTEGER NOT NULL,
 | |
|     file_type VARCHAR(255) NOT NULL,
 | |
|     provider_file_id VARCHAR(255),
 | |
|     file_upload_provider VARCHAR(255),
 | |
|     available BOOLEAN NOT NULL,
 | |
|     created_at TIMESTAMP NOT NULL DEFAULT now()::TIMESTAMP,
 | |
|     PRIMARY KEY (file_id, merchant_id)
 | |
| );
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-04-05-051523_add_business_sub_label_to_payment_attempt/up.sql
 | |
| ALTER TABLE payment_attempt
 | |
| ADD COLUMN IF NOT EXISTS business_sub_label VARCHAR(64);
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-04-05-121040_alter_mca_change_country_to_enum/up.sql
 | |
| ALTER TABLE merchant_connector_account
 | |
| ALTER COLUMN business_country TYPE "CountryCode" USING business_country::"CountryCode";
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-04-05-121047_alter_pi_change_country_to_enum/up.sql
 | |
| ALTER TABLE payment_intent
 | |
| ALTER COLUMN business_country DROP DEFAULT,
 | |
|     ALTER COLUMN business_country TYPE "CountryCode" USING business_country::"CountryCode";
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-04-06-063047_add_connector_col_in_dispute/up.sql
 | |
| -- Your SQL goes here
 | |
| ALTER TABLE dispute
 | |
| ADD COLUMN connector VARCHAR(255) NOT NULL;
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-04-06-092008_create_merchant_ek/up.sql
 | |
| CREATE TABLE merchant_key_store(
 | |
|     merchant_id VARCHAR(255) NOT NULL PRIMARY KEY,
 | |
|     key bytea NOT NULL,
 | |
|     created_at TIMESTAMP NOT NULL
 | |
| );
 | |
| 
 | |
| -- File: migrations/2023-04-11-084958_pii-migration/up.sql
 | |
| -- Your SQL goes here
 | |
| ALTER TABLE merchant_connector_account
 | |
|     ALTER COLUMN connector_account_details TYPE bytea
 | |
|     USING convert_to(connector_account_details::text, 'UTF8');
 | |
| 
 | |
| ALTER TABLE merchant_account
 | |
|     ALTER COLUMN merchant_name TYPE bytea USING convert_to(merchant_name, 'UTF8'),
 | |
|     ALTER merchant_details TYPE bytea USING convert_to(merchant_details::text, 'UTF8');
 | |
| 
 | |
| ALTER TABLE address
 | |
|     ALTER COLUMN line1 TYPE bytea USING convert_to(line1, 'UTF8'),
 | |
|     ALTER COLUMN line2 TYPE bytea USING convert_to(line2, 'UTF8'),
 | |
|     ALTER COLUMN line3 TYPE bytea USING convert_to(line3, 'UTF8'),
 | |
|     ALTER COLUMN state TYPE bytea USING convert_to(state, 'UTF8'),
 | |
|     ALTER COLUMN zip TYPE bytea USING convert_to(zip, 'UTF8'),
 | |
|     ALTER COLUMN first_name TYPE bytea USING convert_to(first_name, 'UTF8'),
 | |
|     ALTER COLUMN last_name TYPE bytea USING convert_to(last_name, 'UTF8'),
 | |
|     ALTER COLUMN phone_number TYPE bytea USING convert_to(phone_number, 'UTF8');
 | |
| 
 | |
| ALTER TABLE customers
 | |
|     ALTER COLUMN name TYPE bytea USING convert_to(name, 'UTF8'),
 | |
|     ALTER COLUMN email TYPE bytea USING convert_to(email, 'UTF8'),
 | |
|     ALTER COLUMN phone TYPE bytea USING convert_to(phone, 'UTF8');
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-04-12-075449_separate_payment_attempt_algorithm_col/up.sql
 | |
| -- Your SQL goes here
 | |
| ALTER TABLE payment_attempt
 | |
| ADD COLUMN straight_through_algorithm JSONB;
 | |
| 
 | |
| UPDATE payment_attempt SET straight_through_algorithm = connector->'algorithm'
 | |
| WHERE connector->>'algorithm' IS NOT NULL;
 | |
| 
 | |
| ALTER TABLE payment_attempt
 | |
| ALTER COLUMN connector TYPE VARCHAR(64)
 | |
| USING connector->>'routed_through';
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-04-13-094917_change_primary_business_type/up.sql
 | |
| -- This change will allow older merchant accounts to be used with new changes
 | |
| UPDATE merchant_account
 | |
| SET primary_business_details = '[{"country": "US", "business": "default"}]';
 | |
| 
 | |
| -- Since this field is optional, default is not required
 | |
| ALTER TABLE merchant_connector_account
 | |
| ALTER COLUMN business_sub_label DROP DEFAULT;
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-04-19-072152_merchant_account_add_intent_fulfilment_time/up.sql
 | |
| ALTER TABLE merchant_account ADD COLUMN IF NOT EXISTS intent_fulfillment_time BIGINT;
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-04-19-120503_update_customer_connector_customer/up.sql
 | |
| -- Your SQL goes here
 | |
| ALTER TABLE customers
 | |
| ADD COLUMN connector_customer JSONB;
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-04-19-120735_add_time_for_tables/up.sql
 | |
| -- Your SQL goes here
 | |
| ALTER TABLE merchant_account
 | |
| ADD COLUMN IF NOT EXISTS created_at TIMESTAMP NOT NULL DEFAULT now(),
 | |
| ADD COLUMN IF NOT EXISTS modified_at TIMESTAMP NOT NULL DEFAULT now();
 | |
| 
 | |
| ALTER TABLE merchant_connector_account
 | |
| ADD COLUMN IF NOT EXISTS created_at TIMESTAMP NOT NULL DEFAULT now(),
 | |
| ADD COLUMN IF NOT EXISTS modified_at TIMESTAMP NOT NULL DEFAULT now();
 | |
| 
 | |
| 
 | |
| ALTER TABLE customers
 | |
| ADD COLUMN IF NOT EXISTS modified_at TIMESTAMP NOT NULL DEFAULT now();
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-04-20-073704_allow_multiple_mandate_ids/up.sql
 | |
| ALTER TABLE mandate
 | |
|     ADD COLUMN connector_mandate_ids jsonb;
 | |
| UPDATE mandate SET connector_mandate_ids = jsonb_build_object(
 | |
|             'mandate_id', connector_mandate_id,
 | |
|             'payment_method_id', NULL
 | |
|         );
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-04-20-162755_add_preprocessing_step_id_payment_attempt/up.sql
 | |
| -- Your SQL goes here
 | |
| ALTER TABLE payment_attempt ADD COLUMN preprocessing_step_id VARCHAR DEFAULT NULL;
 | |
| CREATE INDEX preprocessing_step_id_index ON payment_attempt (preprocessing_step_id);
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-04-21-100150_create_index_for_api_keys/up.sql
 | |
| CREATE UNIQUE INDEX api_keys_merchant_id_key_id_index ON api_keys (merchant_id, key_id);
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-04-25-061159_rename_country_code_to_country_alpha2/up.sql
 | |
| -- Your SQL goes here
 | |
| ALTER TYPE "CountryCode" RENAME TO "CountryAlpha2";
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-04-25-091017_merchant_account_add_frm_routing_algorithm.sql/up.sql
 | |
| 
 | |
| ALTER TABLE merchant_account
 | |
| ADD COLUMN frm_routing_algorithm JSONB NULL;
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-04-25-141011_add_connector_label_col_in_file_metadata/up.sql
 | |
| -- Your SQL goes here
 | |
| ALTER TABLE file_metadata
 | |
| ADD COLUMN connector_label VARCHAR(255);
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-04-26-062424_alter_dispute_table/up.sql
 | |
| ALTER TABLE dispute
 | |
| ALTER COLUMN challenge_required_by TYPE TIMESTAMP USING dispute_created_at::TIMESTAMP,
 | |
| ALTER COLUMN dispute_created_at TYPE TIMESTAMP USING dispute_created_at::TIMESTAMP,
 | |
| ALTER COLUMN updated_at TYPE TIMESTAMP USING dispute_created_at::TIMESTAMP;
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-04-26-090005_remove_default_created_at_modified_at/up.sql
 | |
| -- Merchant Account
 | |
| ALTER TABLE merchant_account
 | |
| ALTER COLUMN modified_at DROP DEFAULT;
 | |
| 
 | |
| ALTER TABLE merchant_account
 | |
| ALTER COLUMN created_at DROP DEFAULT;
 | |
| 
 | |
| 
 | |
| -- Merchant Connector Account
 | |
| ALTER TABLE merchant_connector_account
 | |
| ALTER COLUMN modified_at DROP DEFAULT;
 | |
| 
 | |
| ALTER TABLE merchant_connector_account
 | |
| ALTER COLUMN created_at DROP DEFAULT;
 | |
| 
 | |
| -- Customers
 | |
| ALTER TABLE customers
 | |
| ALTER COLUMN modified_at DROP DEFAULT;
 | |
| 
 | |
| ALTER TABLE customers
 | |
| ALTER COLUMN created_at DROP DEFAULT;
 | |
| 
 | |
| -- Address
 | |
| ALTER TABLE address
 | |
| ALTER COLUMN modified_at DROP DEFAULT;
 | |
| 
 | |
| ALTER TABLE address
 | |
| ALTER COLUMN created_at DROP DEFAULT;
 | |
| 
 | |
| -- Refunds
 | |
| ALTER TABLE refund
 | |
| ALTER COLUMN modified_at DROP DEFAULT;
 | |
| 
 | |
| ALTER TABLE refund
 | |
| ALTER COLUMN created_at DROP DEFAULT;
 | |
| 
 | |
| -- Connector Response
 | |
| ALTER TABLE connector_response
 | |
| ALTER COLUMN modified_at DROP DEFAULT;
 | |
| 
 | |
| ALTER TABLE connector_response
 | |
| ALTER COLUMN created_at DROP DEFAULT;
 | |
| 
 | |
| -- Payment methods
 | |
| ALTER TABLE payment_methods
 | |
| ALTER COLUMN created_at DROP DEFAULT;
 | |
| 
 | |
| -- Payment Intent
 | |
| ALTER TABLE payment_intent
 | |
| ALTER COLUMN modified_at DROP DEFAULT;
 | |
| 
 | |
| ALTER TABLE payment_intent
 | |
| ALTER COLUMN created_at DROP DEFAULT;
 | |
| 
 | |
| --- Payment Attempt
 | |
| ALTER TABLE payment_attempt
 | |
| ALTER COLUMN modified_at DROP DEFAULT;
 | |
| 
 | |
| ALTER TABLE payment_attempt
 | |
| ALTER COLUMN created_at DROP DEFAULT;
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-04-27-120010_add_payment_failed_event_type/up.sql
 | |
| ALTER TYPE "EventType" ADD VALUE IF NOT EXISTS 'payment_failed';
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-05-02-102332_payout_create/up.sql
 | |
| CREATE type "PayoutStatus" AS ENUM (
 | |
|     'success',
 | |
|     'failed',
 | |
|     'cancelled',
 | |
|     'pending',
 | |
|     'ineligible',
 | |
|     'requires_creation',
 | |
|     'requires_payout_method_data',
 | |
|     'requires_fulfillment'
 | |
| );
 | |
| 
 | |
| CREATE type "PayoutType" AS ENUM ('card', 'bank');
 | |
| 
 | |
| CREATE TABLE
 | |
|     PAYOUT_ATTEMPT (
 | |
|         payout_attempt_id VARCHAR (64) NOT NULL PRIMARY KEY,
 | |
|         payout_id VARCHAR (64) NOT NULL,
 | |
|         customer_id VARCHAR (64) NOT NULL,
 | |
|         merchant_id VARCHAR (64) NOT NULL,
 | |
|         address_id VARCHAR (64) NOT NULL,
 | |
|         connector VARCHAR (64) NOT NULL,
 | |
|         connector_payout_id VARCHAR (128) NOT NULL,
 | |
|         payout_token VARCHAR (64),
 | |
|         status "PayoutStatus" NOT NULL,
 | |
|         is_eligible BOOLEAN,
 | |
|         error_message TEXT,
 | |
|         error_code VARCHAR (64),
 | |
|         business_country "CountryAlpha2",
 | |
|         business_label VARCHAR(64),
 | |
|         created_at timestamp NOT NULL DEFAULT NOW():: timestamp,
 | |
|         last_modified_at timestamp NOT NULL DEFAULT NOW():: timestamp
 | |
|     );
 | |
| 
 | |
| CREATE TABLE
 | |
|     PAYOUTS (
 | |
|         payout_id VARCHAR (64) NOT NULL PRIMARY KEY,
 | |
|         merchant_id VARCHAR (64) NOT NULL,
 | |
|         customer_id VARCHAR (64) NOT NULL,
 | |
|         address_id VARCHAR (64) NOT NULL,
 | |
|         payout_type "PayoutType" NOT NULL,
 | |
|         payout_method_id VARCHAR (64),
 | |
|         amount BIGINT NOT NULL,
 | |
|         destination_currency "Currency" NOT NULL,
 | |
|         source_currency "Currency" NOT NULL,
 | |
|         description VARCHAR (255),
 | |
|         recurring BOOLEAN NOT NULL,
 | |
|         auto_fulfill BOOLEAN NOT NULL,
 | |
|         return_url VARCHAR (255),
 | |
|         entity_type VARCHAR (64) NOT NULL,
 | |
|         metadata JSONB DEFAULT '{}':: JSONB,
 | |
|         created_at timestamp NOT NULL DEFAULT NOW():: timestamp,
 | |
|         last_modified_at timestamp NOT NULL DEFAULT NOW():: timestamp
 | |
|     );
 | |
| 
 | |
| CREATE UNIQUE INDEX payout_attempt_index ON PAYOUT_ATTEMPT (
 | |
|     merchant_id,
 | |
|     payout_attempt_id,
 | |
|     payout_id
 | |
| );
 | |
| 
 | |
| CREATE UNIQUE INDEX payouts_index ON PAYOUTS (merchant_id, payout_id);
 | |
| 
 | |
| -- Alterations
 | |
| 
 | |
| ALTER TABLE merchant_account
 | |
| ADD
 | |
|     COLUMN payout_routing_algorithm JSONB;
 | |
| 
 | |
| ALTER TABLE locker_mock_up ADD COLUMN enc_card_data TEXT;
 | |
| 
 | |
| ALTER TYPE "ConnectorType" ADD VALUE 'payout_processor';
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-05-03-121025_nest_straight_through_col_in_payment_attempt/up.sql
 | |
| -- Your SQL goes here
 | |
| UPDATE payment_attempt
 | |
| SET straight_through_algorithm = jsonb_build_object('algorithm', straight_through_algorithm);
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-05-05-112013_add_evidence_col_in_dispute/up.sql
 | |
| -- Your SQL goes here
 | |
| ALTER TABLE dispute
 | |
| ADD COLUMN evidence JSONB NOT NULL DEFAULT '{}'::JSONB;
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-05-08-141907_rename_dispute_cols/up.sql
 | |
| -- Your SQL goes here
 | |
| ALTER TABLE dispute
 | |
| RENAME COLUMN dispute_created_at TO connector_created_at;
 | |
| 
 | |
| ALTER TABLE dispute
 | |
| RENAME COLUMN updated_at TO connector_updated_at;
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-05-16-145008_mandate_data_in_pa/up.sql
 | |
| -- Your SQL goes here
 | |
| ALTER TABLE payment_attempt ADD COLUMN mandate_details JSONB;
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-05-29-094747_order-details-as-a-separate-column.sql/up.sql
 | |
| ALTER TABLE payment_intent ADD COLUMN order_details jsonb[];
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-05-31-152153_add_connector_webhook_details_to_mca/up.sql
 | |
| -- Your SQL goes here
 | |
| ALTER TABLE merchant_connector_account
 | |
| ADD COLUMN IF NOT EXISTS connector_webhook_details JSONB DEFAULT NULL;
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-06-14-105035_add_reason_in_payment_attempt/up.sql
 | |
| ALTER TABLE payment_attempt
 | |
| ADD COLUMN error_reason TEXT;
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-06-16-073615_add_ron_currency_to_db/up.sql
 | |
| -- Your SQL goes here
 | |
| ALTER TYPE "Currency" ADD VALUE IF NOT EXISTS 'RON' AFTER 'QAR';
 | |
| ALTER TYPE "Currency" ADD VALUE IF NOT EXISTS 'TRY' AFTER 'TTD';
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-06-18-042123_add_udf_column_in_payments/up.sql
 | |
| -- Your SQL goes here
 | |
| ALTER TABLE payment_intent ADD COLUMN udf JSONB;
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-06-19-071300_merchant_key_store_shrink_merchant_id/up.sql
 | |
| ALTER TABLE merchant_key_store
 | |
| ALTER COLUMN merchant_id TYPE VARCHAR(64);
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-06-22-161131_change-type-of-frm-configs.sql/up.sql
 | |
| UPDATE merchant_connector_account set frm_configs = null ;
 | |
| 
 | |
| ALTER TABLE merchant_connector_account 
 | |
| ALTER COLUMN frm_configs TYPE jsonb[]
 | |
| USING ARRAY[frm_configs]::jsonb[];
 | |
| 
 | |
| UPDATE merchant_connector_account set frm_configs = null ;
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-06-26-124254_add_vnd_to_currency_enum/up.sql
 | |
| -- Your SQL goes here
 | |
| ALTER TYPE "Currency" ADD VALUE IF NOT EXISTS 'VND' AFTER 'UZS';
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-06-29-094858_payment-intent-remove-udf-field/up.sql
 | |
| -- Your SQL goes here
 | |
| ALTER TABLE payment_intent DROP COLUMN udf;
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-07-01-184850_payment-intent-add-metadata-fields/up.sql
 | |
| -- Your SQL goes here
 | |
| ALTER TABLE payment_intent
 | |
| ADD COLUMN allowed_payment_method_types JSON,
 | |
| ADD COLUMN connector_metadata JSON,
 | |
| ADD COLUMN feature_metadata JSON;
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-07-03-093552_add_attempt_count_in_payment_intent/up.sql
 | |
| ALTER TABLE payment_intent ADD COLUMN attempt_count SMALLINT NOT NULL DEFAULT 1;
 | |
| 
 | |
| UPDATE payment_intent
 | |
| SET attempt_count = payment_id_count.count
 | |
| FROM (SELECT payment_id, count(payment_id) FROM payment_attempt GROUP BY payment_id) as payment_id_count
 | |
| WHERE payment_intent.payment_id = payment_id_count.payment_id;
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-07-04-131721_add_org_id_and_org_name/up.sql
 | |
| -- Your SQL goes here
 | |
| ALTER TABLE merchant_account
 | |
| ADD COLUMN IF NOT EXISTS organization_id VARCHAR(32);
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-07-07-091223_create_captures_table/up.sql
 | |
| 
 | |
| CREATE TYPE "CaptureStatus" AS ENUM (
 | |
|     'started',
 | |
|     'charged',
 | |
|     'pending',
 | |
|     'failed'
 | |
| );
 | |
| ALTER TYPE "IntentStatus" ADD VALUE If NOT EXISTS 'partially_captured' AFTER 'requires_capture';
 | |
| CREATE TABLE captures(
 | |
|     capture_id VARCHAR(64) NOT NULL PRIMARY KEY,
 | |
|     payment_id VARCHAR(64) NOT NULL,
 | |
|     merchant_id VARCHAR(64) NOT NULL,
 | |
|     status "CaptureStatus" NOT NULL,
 | |
|     amount BIGINT NOT NULL,
 | |
|     currency "Currency",
 | |
|     connector VARCHAR(255),
 | |
|     error_message VARCHAR(255),
 | |
|     error_code VARCHAR(255),
 | |
|     error_reason VARCHAR(255),
 | |
|     tax_amount BIGINT,
 | |
|     created_at TIMESTAMP NOT NULL,
 | |
|     modified_at TIMESTAMP NOT NULL,
 | |
|     authorized_attempt_id VARCHAR(64) NOT NULL,
 | |
|     connector_transaction_id VARCHAR(128),
 | |
|     capture_sequence SMALLINT NOT NULL
 | |
| );
 | |
| 
 | |
| CREATE INDEX captures_merchant_id_payment_id_authorized_attempt_id_index ON captures (
 | |
|     merchant_id,
 | |
|     payment_id,
 | |
|     authorized_attempt_id
 | |
| );
 | |
| CREATE INDEX captures_connector_transaction_id_index ON captures (
 | |
|     connector_transaction_id
 | |
| );
 | |
| 
 | |
| ALTER TABLE payment_attempt
 | |
| ADD COLUMN multiple_capture_count SMALLINT; --number of captures available for this payment attempt in captures table
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-07-08-134807_add_connector_response_reference_id_in_payment_intent/up.sql
 | |
| -- Your SQL goes here
 | |
| ALTER TABLE payment_attempt ADD COLUMN IF NOT EXISTS connector_response_reference_id VARCHAR(128);
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-07-11-140347_add_is_recon_enabled_field_in_merchant_account/up.sql
 | |
| -- Your SQL goes here
 | |
| ALTER TABLE merchant_account ADD COLUMN "is_recon_enabled" BOOLEAN NOT NULL DEFAULT FALSE;
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-07-17-111427_add-fraud-check-table.sql/up.sql
 | |
| -- Your SQL goes here-- Your SQL goes here
 | |
| CREATE TYPE "FraudCheckType" AS ENUM (
 | |
|     'pre_frm',
 | |
|     'post_frm'
 | |
| );
 | |
| 
 | |
| CREATE TYPE "FraudCheckStatus" AS ENUM (
 | |
|     'fraud',
 | |
|     'manual_review',
 | |
|     'pending',
 | |
|     'legit',
 | |
|     'transaction_failure'
 | |
| );
 | |
| 
 | |
| CREATE TABLE fraud_check (
 | |
|     frm_id VARCHAR(64) NOT NULL UNIQUE,
 | |
|     payment_id VARCHAR(64) NOT NULL,
 | |
|     merchant_id VARCHAR(64) NOT NULL,
 | |
|     attempt_id VARCHAR(64) NOT NULL UNIQUE,
 | |
|     created_at TIMESTAMP NOT NULL DEFAULT now(),
 | |
|     frm_name VARCHAR(255) NOT NULL,
 | |
|     frm_transaction_id VARCHAR(255) UNIQUE,
 | |
|     frm_transaction_type "FraudCheckType" NOT NULL,
 | |
|     frm_status "FraudCheckStatus" NOT NULL,
 | |
|     frm_score INTEGER,
 | |
|     frm_reason JSONB,
 | |
|     frm_error VARCHAR(255),
 | |
|     payment_details JSONB,
 | |
|     metadata JSONB,
 | |
|     modified_at TIMESTAMP NOT NULL DEFAULT now(),
 | |
| 
 | |
|     PRIMARY KEY (frm_id, attempt_id, payment_id, merchant_id)
 | |
| );
 | |
| 
 | |
| CREATE UNIQUE INDEX frm_id_index ON fraud_check (frm_id, attempt_id, payment_id, merchant_id);
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-07-19-081050_add_zero_decimal_currencies/up.sql
 | |
| -- Your SQL goes here
 | |
| ALTER TYPE "Currency" ADD VALUE IF NOT EXISTS 'BIF' AFTER 'BHD';
 | |
| ALTER TYPE "Currency" ADD VALUE IF NOT EXISTS 'CLP' AFTER 'CHF';
 | |
| ALTER TYPE "Currency" ADD VALUE IF NOT EXISTS 'DJF' AFTER 'CZK';
 | |
| ALTER TYPE "Currency" ADD VALUE IF NOT EXISTS 'GNF' AFTER 'GMD';
 | |
| ALTER TYPE "Currency" ADD VALUE IF NOT EXISTS 'KMF' AFTER 'KHR';
 | |
| ALTER TYPE "Currency" ADD VALUE IF NOT EXISTS 'MGA' AFTER 'MDL';
 | |
| ALTER TYPE "Currency" ADD VALUE IF NOT EXISTS 'PYG' AFTER 'PLN';
 | |
| ALTER TYPE "Currency" ADD VALUE IF NOT EXISTS 'RWF' AFTER 'RUB';
 | |
| ALTER TYPE "Currency" ADD VALUE IF NOT EXISTS 'UGX' AFTER 'TZS';
 | |
| ALTER TYPE "Currency" ADD VALUE IF NOT EXISTS 'VUV' AFTER 'VND';
 | |
| ALTER TYPE "Currency" ADD VALUE IF NOT EXISTS 'XAF' AFTER 'VUV';
 | |
| ALTER TYPE "Currency" ADD VALUE IF NOT EXISTS 'XOF' AFTER 'XAF';
 | |
| ALTER TYPE "Currency" ADD VALUE IF NOT EXISTS 'XPF' AFTER 'XOF';
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-07-28-111829_update_columns_to_fix_db_diff/up.sql
 | |
| ALTER TABLE dispute
 | |
| ALTER COLUMN payment_id TYPE VARCHAR(64);
 | |
| 
 | |
| ALTER TABLE payment_methods
 | |
| ALTER COLUMN payment_method_type TYPE VARCHAR(64);
 | |
| 
 | |
| ALTER TABLE merchant_account
 | |
| ALTER COLUMN primary_business_details DROP DEFAULT;
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-08-01-165717_make_event_id_unique_for_events_table/up.sql
 | |
| -- Your SQL goes here
 | |
| ALTER TABLE events
 | |
| ADD CONSTRAINT event_id_unique UNIQUE (event_id);
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-08-08-144148_add_business_profile_table/up.sql
 | |
| -- Your SQL goes here
 | |
| CREATE TABLE IF NOT EXISTS business_profile (
 | |
|     profile_id VARCHAR(64) PRIMARY KEY,
 | |
|     merchant_id VARCHAR(64) NOT NULL,
 | |
|     profile_name VARCHAR(64) NOT NULL,
 | |
|     created_at TIMESTAMP NOT NULL,
 | |
|     modified_at TIMESTAMP NOT NULL,
 | |
|     return_url TEXT,
 | |
|     enable_payment_response_hash BOOLEAN NOT NULL DEFAULT TRUE,
 | |
|     payment_response_hash_key VARCHAR(255) DEFAULT NULL,
 | |
|     redirect_to_merchant_with_http_post BOOLEAN NOT NULL DEFAULT FALSE,
 | |
|     webhook_details JSON,
 | |
|     metadata JSON,
 | |
|     routing_algorithm JSON,
 | |
|     intent_fulfillment_time BIGINT,
 | |
|     frm_routing_algorithm JSONB,
 | |
|     payout_routing_algorithm JSONB,
 | |
|     is_recon_enabled BOOLEAN NOT NULL DEFAULT FALSE
 | |
| );
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-08-11-073905_add_frm_config_in_mca/up.sql
 | |
| ALTER TABLE "merchant_connector_account" ADD COLUMN frm_config jsonb[];
 | |
| -- Do not run below migration in PROD as this only makes sandbox compatible to PROD version
 | |
| ALTER TABLE merchant_connector_account 
 | |
| ALTER COLUMN frm_configs TYPE jsonb
 | |
| USING frm_configs[1]::jsonb;
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-08-16-080721_make_connector_field_mandatory_capture_table/up.sql
 | |
| -- Your SQL goes here
 | |
| ALTER TABLE captures ALTER COLUMN connector SET NOT NULL;
 | |
| ALTER TABLE captures RENAME COLUMN connector_transaction_id TO connector_capture_id;
 | |
| ALTER TABLE captures add COLUMN IF NOT EXISTS connector_response_reference_id VARCHAR(128);
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-08-16-103806_add_last_executed_frm_step/up.sql
 | |
| alter table fraud_check add column last_step VARCHAR(64) NOT NULL DEFAULT 'processing';
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-08-16-112847_add_profile_id_in_affected_tables/up.sql
 | |
| -- Your SQL goes here
 | |
| ALTER TABLE payment_intent
 | |
| ADD COLUMN IF NOT EXISTS profile_id VARCHAR(64);
 | |
| 
 | |
| ALTER TABLE merchant_connector_account
 | |
| ADD COLUMN IF NOT EXISTS profile_id VARCHAR(64);
 | |
| 
 | |
| ALTER TABLE merchant_account
 | |
| ADD COLUMN IF NOT EXISTS default_profile VARCHAR(64);
 | |
| 
 | |
| -- Profile id is needed in refunds for listing refunds by business profile
 | |
| ALTER TABLE refund
 | |
| ADD COLUMN IF NOT EXISTS profile_id VARCHAR(64);
 | |
| 
 | |
| -- For listing disputes by business profile
 | |
| ALTER TABLE dispute
 | |
| ADD COLUMN IF NOT EXISTS profile_id VARCHAR(64);
 | |
| 
 | |
| -- For a similar use case as to payments
 | |
| ALTER TABLE payout_attempt
 | |
| ADD COLUMN IF NOT EXISTS profile_id VARCHAR(64);
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-08-23-090712_payment_attempt_perf_idx/up.sql
 | |
| -- Your SQL goes here
 | |
| CREATE INDEX payment_attempt_attempt_id_merchant_id_index ON payment_attempt (attempt_id, merchant_id);
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-08-24-095037_add_profile_id_in_file_metadata/up.sql
 | |
| -- Your SQL goes here
 | |
| ALTER TABLE file_metadata
 | |
| ADD COLUMN IF NOT EXISTS profile_id VARCHAR(64);
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-08-25-094551_add_recon_status_in_merchant_account/up.sql
 | |
| -- Your SQL goes here
 | |
| CREATE TYPE "ReconStatus" AS ENUM ('requested','active', 'disabled','not_requested');
 | |
| ALTER TABLE merchant_account ADD recon_status "ReconStatus" NOT NULL DEFAULT "ReconStatus"('not_requested');
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-08-28-131238_make_business_details_optional/up.sql
 | |
| -- Your SQL goes here
 | |
| ALTER TABLE payment_intent
 | |
| ALTER COLUMN business_country DROP NOT NULL;
 | |
| 
 | |
| ALTER TABLE payment_intent
 | |
| ALTER COLUMN business_label DROP NOT NULL;
 | |
| 
 | |
| ALTER TABLE merchant_connector_account
 | |
| ALTER COLUMN business_country DROP NOT NULL;
 | |
| 
 | |
| ALTER TABLE merchant_connector_account
 | |
| ALTER COLUMN business_label DROP NOT NULL;
 | |
| 
 | |
| ALTER TABLE merchant_connector_account
 | |
| ALTER COLUMN connector_label DROP NOT NULL;
 | |
| 
 | |
| DROP INDEX IF EXISTS merchant_connector_account_merchant_id_connector_label_index;
 | |
| 
 | |
| CREATE UNIQUE INDEX IF NOT EXISTS merchant_connector_account_profile_id_connector_id_index ON merchant_connector_account(profile_id, connector_name);
 | |
| 
 | |
| CREATE UNIQUE INDEX IF NOT EXISTS business_profile_merchant_id_profile_name_index ON business_profile(merchant_id, profile_name);
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-08-31-093852_add_merchant_decision/up.sql
 | |
| alter table payment_intent add column merchant_decision VARCHAR(64);
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-09-06-101704_payment_method_data_in_payment_methods/up.sql
 | |
| -- Your SQL goes here
 | |
| ALTER TABLE payment_methods ADD COLUMN IF NOT EXISTS payment_method_data BYTEA DEFAULT NULL;
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-09-07-113914_add_amount_capturable_field_payment_attempt/up.sql
 | |
| -- Your SQL goes here
 | |
| ALTER TABLE payment_attempt
 | |
| ADD COLUMN IF NOT EXISTS amount_capturable BIGINT NOT NULL DEFAULT 0;
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-09-08-112817_applepay_verified_domains_in_business_profile/up.sql
 | |
| ALTER TABLE business_profile
 | |
| ADD COLUMN IF NOT EXISTS applepay_verified_domains text[];
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-09-08-134514_add_payment_confirm_source_in_payment_intent/up.sql
 | |
| -- Your SQL goes here
 | |
| CREATE TYPE "PaymentSource" AS ENUM (
 | |
|     'merchant_server',
 | |
|     'postman',
 | |
|     'dashboard',
 | |
|     'sdk'
 | |
| );
 | |
| 
 | |
| ALTER TABLE payment_intent
 | |
| ADD COLUMN IF NOT EXISTS payment_confirm_source "PaymentSource";
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-09-13-075226_applepay_verified_domains_in_mca/up.sql
 | |
| ALTER TABLE merchant_connector_account
 | |
| ADD COLUMN IF NOT EXISTS applepay_verified_domains text[];
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-09-14-032447_add_payment_id_in_address/up.sql
 | |
| -- Your SQL goes here
 | |
| ALTER TABLE address ADD COLUMN payment_id VARCHAR(64);
 | |
| ALTER TABLE customers ADD COLUMN address_id VARCHAR(64);
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-09-17-152010_make_id_not_null_address/up.sql
 | |
| -- Your SQL goes here
 | |
| ALTER TABLE address ALTER COLUMN id DROP NOT NULL;
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-09-18-104900_add_pm_auth_config_mca/up.sql
 | |
| -- Your SQL goes here
 | |
| ALTER TABLE merchant_connector_account ADD COLUMN IF NOT EXISTS pm_auth_config JSONB DEFAULT NULL;
 | |
| ALTER TYPE "ConnectorType" ADD VALUE 'payment_method_auth';
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-09-25-125007_add_surcharge_metadata_payment_attempt/up.sql
 | |
| -- Your SQL goes here
 | |
| ALTER TABLE payment_attempt
 | |
| ADD COLUMN IF NOT EXISTS surcharge_metadata JSONB DEFAULT NULL;
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-10-05-085859_make_org_id_mandatory_in_ma/up.sql
 | |
| -- Your SQL goes here
 | |
| UPDATE merchant_account
 | |
| SET organization_id = 'org_abcdefghijklmn'
 | |
| WHERE organization_id IS NULL;
 | |
| 
 | |
| ALTER TABLE merchant_account
 | |
| ALTER COLUMN organization_id
 | |
| SET NOT NULL;
 | |
| 
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-10-05-114138_add_payment_id_in_mandate/up.sql
 | |
| -- Your SQL goes here
 | |
| ALTER TABLE mandate ADD COLUMN original_payment_id VARCHAR(64);
 | |
| 
 | |
| 
 | |
| -- File: migrations/2023-10-05-130917_add_mandate_webhook_types/up.sql
 | |
| -- Your SQL goes here
 | |
| ALTER TYPE "EventClass" ADD VALUE 'mandates';
 | |
| 
 | |
| ALTER TYPE "EventObjectType" ADD VALUE 'mandate_details';
 | |
| 
 | |
| ALTER TYPE "EventType" ADD VALUE 'mandate_active';
 | |
| 
 | |
| ALTER TYPE "EventType" ADD VALUE 'mandate_revoked';
 | |
| 
 | |
| 
 |