Update storage sql scripts for setting up cdr tables

This commit is contained in:
ionutboangiu
2023-12-08 11:37:24 -05:00
committed by Dan Christian Bogos
parent 5f4da20881
commit 9e56246ba1
2 changed files with 15 additions and 89 deletions

View File

@@ -4,47 +4,14 @@
DROP TABLE IF EXISTS cdrs;
CREATE TABLE cdrs (
id int(11) NOT NULL AUTO_INCREMENT,
run_id varchar(64) NOT NULL,
origin_host varchar(64) NOT NULL,
source varchar(64) NOT NULL,
origin_id varchar(128) NOT NULL,
tor varchar(16) NOT NULL,
request_type varchar(24) NOT NULL,
tenant varchar(64) NOT NULL,
category varchar(64) NOT NULL,
account varchar(128) NOT NULL,
subject varchar(128) NOT NULL,
destination varchar(128) NOT NULL,
setup_time datetime NOT NULL,
answer_time datetime NULL,
`usage` BIGINT NOT NULL,
extra_fields text NOT NULL,
cost_source varchar(64) NOT NULL,
cost DECIMAL(20,4) NOT NULL,
cost_details MEDIUMTEXT,
extra_info text,
created_at TIMESTAMP NULL,
updated_at TIMESTAMP NULL,
deleted_at TIMESTAMP NULL,
PRIMARY KEY (id),
UNIQUE KEY cdrrun ( run_id)
);
DROP TABLE IF EXISTS session_costs;
CREATE TABLE session_costs (
id int(11) NOT NULL AUTO_INCREMENT,
run_id varchar(64) NOT NULL,
origin_host varchar(64) NOT NULL,
origin_id varchar(128) NOT NULL,
cost_source varchar(64) NOT NULL,
`usage` BIGINT NOT NULL,
cost_details MEDIUMTEXT,
created_at TIMESTAMP NULL,
deleted_at TIMESTAMP NULL,
PRIMARY KEY (`id`),
UNIQUE KEY costid ( run_id),
KEY origin_idx (origin_host, origin_id),
KEY run_origin_idx (run_id, origin_id),
KEY deleted_at_idx (deleted_at)
`id` int(11) NOT NULL AUTO_INCREMENT,
`tenant` VARCHAR(40) NOT NULL,
`opts` JSON NOT NULL,
`event` JSON NOT NULL,
`created_at` TIMESTAMP NULL,
`updated_at` TIMESTAMP NULL,
`deleted_at` TIMESTAMP NULL,
PRIMARY KEY (`id`)
);
ALTER TABLE cdrs ADD COLUMN cdrid VARCHAR(40) GENERATED ALWAYS AS ( JSON_VALUE(opts, '$."*cdrID"') );
CREATE UNIQUE INDEX opts_cdrid_idx ON cdrs (cdrid);

View File

@@ -5,52 +5,11 @@
DROP TABLE IF EXISTS cdrs;
CREATE TABLE cdrs (
id SERIAL PRIMARY KEY,
run_id VARCHAR(64) NOT NULL,
origin_host VARCHAR(64) NOT NULL,
source VARCHAR(64) NOT NULL,
origin_id VARCHAR(128) NOT NULL,
tor VARCHAR(16) NOT NULL,
request_type VARCHAR(24) NOT NULL,
tenant VARCHAR(64) NOT NULL,
category VARCHAR(64) NOT NULL,
account VARCHAR(128) NOT NULL,
subject VARCHAR(128) NOT NULL,
destination VARCHAR(128) NOT NULL,
setup_time TIMESTAMP WITH TIME ZONE NOT NULL,
answer_time TIMESTAMP WITH TIME ZONE NULL,
usage BIGINT NOT NULL,
extra_fields jsonb NOT NULL,
cost_source VARCHAR(64) NOT NULL,
cost NUMERIC(20,4) DEFAULT NULL,
cost_details jsonb,
extra_info text,
tenant VARCHAR(40) NOT NULL,
opts jsonb NOT NULL,
event jsonb NOT NULL,
created_at TIMESTAMP WITH TIME ZONE,
updated_at TIMESTAMP WITH TIME ZONE NULL,
deleted_at TIMESTAMP WITH TIME ZONE NULL,
UNIQUE ( run_id)
deleted_at TIMESTAMP WITH TIME ZONE NULL
);
;
DROP INDEX IF EXISTS deleted_at_cp_idx;
CREATE INDEX deleted_at_cp_idx ON cdrs (deleted_at);
DROP TABLE IF EXISTS session_costs;
CREATE TABLE session_costs (
id SERIAL PRIMARY KEY,
run_id VARCHAR(64) NOT NULL,
origin_host VARCHAR(64) NOT NULL,
origin_id VARCHAR(128) NOT NULL,
cost_source VARCHAR(64) NOT NULL,
usage BIGINT NOT NULL,
cost_details jsonb,
created_at TIMESTAMP WITH TIME ZONE,
deleted_at TIMESTAMP WITH TIME ZONE NULL,
UNIQUE ( run_id)
);
DROP INDEX IF EXISTS origin_sessionscost_idx;
CREATE INDEX origin_sessionscost_idx ON session_costs (origin_host, origin_id);
DROP INDEX IF EXISTS run_origin_sessionscost_idx;
CREATE INDEX run_origin_sessionscost_idx ON session_costs (run_id, origin_id);
DROP INDEX IF EXISTS deleted_at_sessionscost_idx;
CREATE INDEX deleted_at_sessionscost_idx ON session_costs (deleted_at);
CREATE UNIQUE INDEX opts_cdrid_idx ON cdrs( (opts->>'*cdrID') );