Files
hyperswitch/aws/beta_schema.sql
BallaNitesh 838372ab3f feat: add one-click deploy script for HyperSwitch on AWS (EC2, RDS, Redis) (#2730)
Co-authored-by: Nishant Joshi <nishant.joshi@juspay.in>
Co-authored-by: Venkatesh <inventvenkat@gmail.com>
2023-10-30 11:59:21 +00:00

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';