diff --git a/data/storage/mysql/create_cdrs_tables.sql b/data/storage/mysql/create_cdrs_tables.sql index 98a5592e4..050712c4c 100644 --- a/data/storage/mysql/create_cdrs_tables.sql +++ b/data/storage/mysql/create_cdrs_tables.sql @@ -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); \ No newline at end of file diff --git a/data/storage/postgres/create_cdrs_tables.sql b/data/storage/postgres/create_cdrs_tables.sql index c8759198d..5266afe14 100644 --- a/data/storage/postgres/create_cdrs_tables.sql +++ b/data/storage/postgres/create_cdrs_tables.sql @@ -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') );