File: /www/exchange2/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;