defmodule DaProductApp.Repo.Migrations.CreateCloudTransaction do use Ecto.Migration def up do execute(""" CREATE TABLE cloud_transaction ( id BIGINT AUTO_INCREMENT PRIMARY KEY, uhid VARCHAR(255), email VARCHAR(255), mobile_no VARCHAR(255), processing_id VARCHAR(255), uname VARCHAR(255), user_id VARCHAR(255), pay_mode VARCHAR(255), location_id VARCHAR(255), transaction_location VARCHAR(255), credentials_user VARCHAR(255), credentials_key VARCHAR(255), version VARCHAR(255), return_url VARCHAR(255), response_url VARCHAR(255), status VARCHAR(255) DEFAULT 'pending', transaction_id VARCHAR(255), transaction_amount DECIMAL(20, 6), transaction_ref_number VARCHAR(255), m_ref_num VARCHAR(255), name VARCHAR(255), provider_id INTEGER, device_id VARCHAR(255), merchant_id VARCHAR(255), payment_reference_id VARCHAR(255), additional_data JSON, payload JSON, settlement_date_time DATETIME, refund_reference_id VARCHAR(255), provider_name VARCHAR(255), acknoledgment VARCHAR(255), inserted_at DATETIME NOT NULL, updated_at DATETIME NOT NULL ) ENGINE=InnoDB """) execute("CREATE INDEX cloud_transaction_processing_id_index ON cloud_transaction (processing_id)") execute("CREATE INDEX cloud_transaction_transaction_id_index ON cloud_transaction (transaction_id)") execute("CREATE INDEX cloud_transaction_provider_id_index ON cloud_transaction (provider_id)") execute("CREATE INDEX cloud_transaction_device_id_index ON cloud_transaction (device_id)") execute("CREATE INDEX cloud_transaction_merchant_id_index ON cloud_transaction (merchant_id)") execute("CREATE INDEX cloud_transaction_transaction_ref_number_index ON cloud_transaction (transaction_ref_number)") end def down do execute("DROP TABLE IF EXISTS cloud_transaction") end end