HEX
Server: Apache/2.2.15 (CentOS)
System: Linux ip-10-0-2-146.eu-west-1.compute.internal 2.6.32-754.35.1.el6.centos.plus.x86_64 #1 SMP Sat Nov 7 11:33:42 UTC 2020 x86_64
User: root (0)
PHP: 5.6.40
Disabled: NONE
Upload Files
File: /www/exchange0old/sql/custom/TK25472-export-credebt-machine-ids.sql
/* queries to save credebt machine record ids into dedicated tables in Exchange 2.0 */
/* once the below queries are executed, relevant tables with data can be exported into an SQL file using the following command: 
mysqldump -u root -p exchange_test temp_registration_cmids debtors_detail_cmids address_details_cmids organisation_bank_account_details_cmids \
debtor_bank_details_cmids invoice_master_cmids manual_transactions_cmids investor_investments_cmids > credebt-machine-ids-2022-10-23-backup.sql

backup api log table with logs for historical transaction data sync
mysqldump -u root -p exchange_test api_cm_log > historical-sync-api-cm-log-2022-10-23-backup.sql

backup exchange_test database with dataset after historical transaction data sync
mysqldump -u root -p exchange_test > exchange_test-historical-sync-2022-10-23-backup.sql
*/

DROP TABLE IF EXISTS temp_registration_cmids;
CREATE TABLE IF NOT EXISTS temp_registration_cmids (
	id BIGINT(10) AUTO_INCREMENT PRIMARY KEY,
	temp_reg_id BIGINT(10) NOT NULL UNIQUE,
	ref_id VARCHAR(40) DEFAULT NULL,
	user_id BIGINT(10) DEFAULT NULL,
	cm_sync_date DATETIME NOT NULL,
	cm_id BIGINT(10) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

ALTER TABLE temp_registration_cmids 
	ADD INDEX(ref_id),
	ADD INDEX(user_id),
	ADD INDEX(cm_sync_date),
	ADD INDEX(cm_id);

DROP TABLE IF EXISTS debtors_detail_cmids;
CREATE TABLE IF NOT EXISTS debtors_detail_cmids (
	id BIGINT(10) AUTO_INCREMENT PRIMARY KEY,
	debtor_id BIGINT(10) NOT NULL UNIQUE,
	debtor_reference_id BIGINT(10) NOT NULL,
	cm_sync_date DATETIME NOT NULL,
	cm_id BIGINT(10) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

ALTER TABLE debtors_detail_cmids 
	ADD INDEX(debtor_reference_id),
	ADD INDEX(cm_sync_date),
	ADD INDEX(cm_id);

DROP TABLE IF EXISTS address_details_cmids;
CREATE TABLE IF NOT EXISTS address_details_cmids (
	id BIGINT(10) AUTO_INCREMENT PRIMARY KEY,
	address_id BIGINT(10) NOT NULL UNIQUE,
	cm_address_id BIGINT(10) DEFAULT NULL,
	cm_phone_id BIGINT(10) DEFAULT NULL,
	cm_mobile_id BIGINT(10) DEFAULT NULL,
	cm_fax_id BIGINT(10) DEFAULT NULL,
	cm_email_id BIGINT(10) DEFAULT NULL,
	cm_sync_date DATETIME NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

ALTER TABLE address_details_cmids 
	ADD INDEX(cm_address_id),
	ADD INDEX(cm_phone_id),
	ADD INDEX(cm_mobile_id),
	ADD INDEX(cm_fax_id),
	ADD INDEX(cm_email_id),
	ADD INDEX(cm_sync_date);

DROP TABLE IF EXISTS organisation_bank_account_details_cmids;
CREATE TABLE IF NOT EXISTS organisation_bank_account_details_cmids (
	id BIGINT(10) AUTO_INCREMENT PRIMARY KEY,
	account_id BIGINT(10) NOT NULL UNIQUE,
	cm_account_id BIGINT(10) NOT NULL,
	cm_sync_date DATETIME NOT NULL,
	organisation_id BIGINT(10) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

ALTER TABLE organisation_bank_account_details_cmids 
	ADD INDEX(cm_account_id),
	ADD INDEX(cm_sync_date),
	ADD INDEX(organisation_id);

DROP TABLE IF EXISTS debtor_bank_details_cmids;
CREATE TABLE IF NOT EXISTS debtor_bank_details_cmids (
	id BIGINT(10) AUTO_INCREMENT PRIMARY KEY,
	debtor_bank_id BIGINT(10) NOT NULL UNIQUE,
	cm_account_id BIGINT(10) NOT NULL,
	cm_sync_date DATETIME NOT NULL,
	debtor_id BIGINT(10) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

ALTER TABLE debtor_bank_details_cmids 
	ADD INDEX(cm_account_id),
	ADD INDEX(cm_sync_date),
	ADD INDEX(debtor_id);
	
DROP TABLE IF EXISTS invoice_master_cmids;
CREATE TABLE IF NOT EXISTS invoice_master_cmids (
	id BIGINT(10) AUTO_INCREMENT PRIMARY KEY,
	invoice_id BIGINT(10) NOT NULL UNIQUE,
	trade_reference_id BIGINT(10) NOT NULL UNIQUE,
	cm_sync_date DATETIME NOT NULL,
	cm_id BIGINT(10) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

ALTER TABLE invoice_master_cmids 
	ADD INDEX(cm_sync_date),
	ADD INDEX(cm_id);
	
DROP TABLE IF EXISTS manual_transactions_cmids;
CREATE TABLE IF NOT EXISTS manual_transactions_cmids (
	id BIGINT(10) AUTO_INCREMENT PRIMARY KEY,
	manual_transaction_id BIGINT(10) NOT NULL UNIQUE,
	cm_sync_date DATETIME NOT NULL,
	cm_id BIGINT(10) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

ALTER TABLE manual_transactions_cmids 
	ADD INDEX(cm_sync_date),
	ADD INDEX(cm_id);
	
DROP TABLE IF EXISTS investor_investments_cmids;
CREATE TABLE IF NOT EXISTS investor_investments_cmids (
	id BIGINT(10) AUTO_INCREMENT PRIMARY KEY,
	investment_id BIGINT(10) NOT NULL UNIQUE,
	exchange_reference_id BIGINT(10) NOT NULL UNIQUE,
	investment_reference_id BIGINT(10) DEFAULT NULL,
	cm_sync_date DATETIME NOT NULL,
	cm_id BIGINT(10) NOT NULL,
	cm_id_investment BIGINT(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

ALTER TABLE investor_investments_cmids 
	ADD INDEX(investment_reference_id),
	ADD INDEX(cm_sync_date),
	ADD INDEX(cm_id),
	ADD INDEX(cm_id_investment);

/* IDs for originator, intermediary and investor records */
INSERT INTO temp_registration_cmids 
(
	temp_reg_id,
	ref_id,
	user_id,
	cm_sync_date,
	cm_id
) 
SELECT 
	temp_reg_id, 
	ref_id,
	user_id,
	cm_sync_date,
	cm_id 
FROM temp_registration 
WHERE cm_id IS NOT NULL 
AND cm_sync_date IS NOT NULL;

/* IDs for debtor and creditor records */
INSERT INTO debtors_detail_cmids 
(
	debtor_id,
	debtor_reference_id,
	cm_sync_date,
	cm_id
) 
SELECT 
	debtor_id, 
	debtor_reference_id,
	cm_sync_date,
	cm_id 
FROM debtors_detail 
WHERE cm_id IS NOT NULL 
AND cm_sync_date IS NOT NULL;

/* IDs for address records */
INSERT INTO address_details_cmids 
(
	address_id,
	cm_address_id,
	cm_phone_id,
	cm_mobile_id,
	cm_fax_id,
	cm_email_id,
	cm_sync_date
) 
SELECT 
	address_id,
	cm_address_id,
	cm_phone_id,
	cm_mobile_id,
	cm_fax_id,
	cm_email_id,
	cm_sync_date 
FROM address_details 
WHERE (
	cm_address_id IS NOT NULL 
	OR cm_phone_id IS NOT NULL 
	OR cm_mobile_id IS NOT NULL 
	OR cm_fax_id IS NOT NULL 
	OR cm_email_id IS NOT NULL 
) 
AND cm_sync_date IS NOT NULL;

/* IDs for originator, intermediary and investor bank account records */
INSERT INTO organisation_bank_account_details_cmids 
(
	account_id,
	cm_account_id,
	cm_sync_date,
	organisation_id
) 
SELECT 
	account_id,
	cm_account_id,
	cm_sync_date,
	organisation_id 
FROM organisation_bank_account_details 
WHERE cm_account_id IS NOT NULL 
AND cm_sync_date IS NOT NULL;

/* IDs for creditor bank account records */
INSERT INTO debtor_bank_details_cmids 
(
	debtor_bank_id,
	cm_account_id,
	cm_sync_date,
	debtor_id
) 
SELECT 
	debtor_bank_id,
	cm_account_id,
	cm_sync_date,
	debtor_id 
FROM debtor_bank_details 
WHERE cm_account_id IS NOT NULL 
AND cm_sync_date IS NOT NULL;

/* IDs for b/c/d-ETR Trade Invoice Transactions */
INSERT INTO invoice_master_cmids 
(
	invoice_id,
	trade_reference_id,
	cm_sync_date,
	cm_id
) 
SELECT 
	invoice_id,
	trade_reference_id,
	cm_sync_date,
	cm_id
FROM invoice_master 
WHERE cm_id IS NOT NULL 
AND cm_sync_date IS NOT NULL;

/* IDs for a/b/c/d variety of non-invoice Transactions */
INSERT INTO manual_transactions_cmids 
(
	manual_transaction_id,
	cm_sync_date,
	cm_id
) 
SELECT 
	manual_transaction_id,
	cm_sync_date,
	cm_id
FROM manual_transactions 
WHERE cm_id IS NOT NULL 
AND cm_sync_date IS NOT NULL;

/* IDs for Investor Transactions */
INSERT INTO investor_investments_cmids 
(
	investment_id,
	exchange_reference_id,
	investment_reference_id,
	cm_sync_date,
	cm_id,
	cm_id_investment
) 
SELECT 
	investment_id,
	exchange_reference_id,
	investment_reference_id,
	cm_sync_date,
	cm_id,
	cm_id_investment
FROM investor_investments 
WHERE 
(
	cm_id IS NOT NULL 
	OR cm_id_investment IS NOT NULL 
) 
AND cm_sync_date IS NOT NULL;