mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-20 06:38:45 +05:00
Fixed broken postgres script
This commit is contained in:
@@ -4,7 +4,7 @@ but it only migrate CDRs where the duration is > 0.
|
||||
If you need CDRs also with duration is = 0 you can make the appropriate change in the line beginning WHERE cdrs_primary.usage
|
||||
Also the script will process 10,000 CDRs before committing to save system resources
|
||||
especially in systems where they are millions of CDRs to be migrated
|
||||
You can increase or lower the value of step in the line after BEGIN below.
|
||||
You can increase or lower the value of step in the line after BEGIN below.P
|
||||
|
||||
You have to use 'CALL cgrates.migration();' to execute the script. If named other then default use that database name.
|
||||
*/
|
||||
@@ -32,7 +32,7 @@ BEGIN
|
||||
WHILE (start_id <= max_cdrs) DO
|
||||
INSERT INTO
|
||||
cdrs(cgrid,run_id,origin_host,source,origin_id,tor,request_type,direction,tenant,category,account,subject,destination,setup_time,pdd,answer_time,`usage`,supplier,disconnect_cause,extra_fields,cost_source,cost,cost_details,extra_info, created_at, updated_at, deleted_at)
|
||||
SELECT cdrs_primary.cgrid,rated_cdrs.runid as run_id,cdrs_primary.cdrhost as origin_host,cdrs_primary.cdrsource as source,cdrs_primary.accid as origin_id, cdrs_primary.tor,rated_cdrs.reqtype as request_type,rated_cdrs.direction, rated_cdrs.tenant,rated_cdrs.category, rated_cdrs.account, rated_cdrs.subject, rated_cdrs.destination,rated_cdrs.setup_time,rated_cdrs.pdd,rated_cdrs.answer_time,rated_cdrs.`usage`,rated_cdrs.supplier,rated_cdrs.disconnect_cause,cdrs_extra.extra_fields,cost_details.cost_source,rated_cdrs.cost,cost_details.timespans as cost_details,rated_cdrs.extra_info,rated_cdrs.created_at,rated_cdrs.updated_at, rated_cdrs.deleted_at
|
||||
SELECT cdrs_primary.cgrid,rated_cdrs.runid as run_id,cdrs_primary.cdrhost as origin_host,cdrs_primary.cdrsource as source,cdrs_primary.accid as origin_id, cdrs_primary.tor,rated_cdrs.reqtype as request_type,rated_cdrs.direction, rated_cdrs.tenant,rated_cdrs.category, rated_cdrs.account, rated_cdrs.subject, rated_cdrs.destination,rated_cdrs.setup_time,rated_cdrs.pdd,rated_cdrs.answer_time,rated_cdrs.`usage`,rated_cdrs.supplier,rated_cdrs.disconnect_cause,cdrs_extra.extra_fields,cost_details.cost_source,rated_cdrs.cost,cost_details.timespans as cost_details,rated_cdrs.extra_info,rated_cdrs.created_at,rated_cdrs.updated_at, null
|
||||
FROM rated_cdrs
|
||||
INNER JOIN cdrs_primary ON rated_cdrs.cgrid = cdrs_primary.cgrid
|
||||
INNER JOIN cdrs_extra ON rated_cdrs.cgrid = cdrs_extra.cgrid
|
||||
|
||||
@@ -8,7 +8,6 @@ especially in systems where they are millions of CDRs to be migrated
|
||||
You can increase or lower the value of step in the line after BEGIN below.
|
||||
*/
|
||||
|
||||
|
||||
DO $$
|
||||
DECLARE
|
||||
max_cdrs bigint;
|
||||
@@ -26,7 +25,7 @@ BEGIN
|
||||
--RAISE NOTICE '%', (to_char(start_id, '99999999') || '-' || to_char(end_id, '99999999'));
|
||||
INSERT INTO
|
||||
cdrs(cgrid,run_id,origin_host,source,origin_id,tor,request_type,direction,tenant,category,account,subject,destination,setup_time,pdd,answer_time,usage,supplier,disconnect_cause,extra_fields,cost_source,cost,cost_details,extra_info, created_at, updated_at, deleted_at)
|
||||
SELECT cdrs_primary.cgrid,rated_cdrs.runid as run_id,cdrs_primary.cdrhost as origin_host,cdrs_primary.cdrsource as source,cdrs_primary.accid as origin_id, cdrs_primary.tor,rated_cdrs.reqtype as request_type,rated_cdrs.direction, rated_cdrs.tenant,rated_cdrs.category, rated_cdrs.account, rated_cdrs.subject, rated_cdrs.destination,rated_cdrs.setup_time,rated_cdrs.pdd,rated_cdrs.answer_time,rated_cdrs.usage,rated_cdrs.supplier,rated_cdrs.disconnect_cause,cdrs_extra.extra_fields,cost_details.cost_source,rated_cdrs.cost,cost_details.timespans as cost_details,rated_cdrs.extra_info,rated_cdrs.created_at,rated_cdrs.updated_at, rated_cdrs.deleted_at
|
||||
SELECT DISTINCT ON (cdrs_primary.cgrid, rated_cdrs.runid, cdrs_primary.accid) cdrs_primary.cgrid,rated_cdrs.runid as run_id,cdrs_primary.cdrhost as origin_host,cdrs_primary.cdrsource as source,cdrs_primary.accid as origin_id, cdrs_primary.tor,rated_cdrs.reqtype as request_type,rated_cdrs.direction, rated_cdrs.tenant,rated_cdrs.category, rated_cdrs.account, rated_cdrs.subject, rated_cdrs.destination,rated_cdrs.setup_time,rated_cdrs.pdd,rated_cdrs.answer_time,rated_cdrs.usage,rated_cdrs.supplier,rated_cdrs.disconnect_cause,cdrs_extra.extra_fields,cost_details.cost_source,rated_cdrs.cost,cost_details.timespans as cost_details,rated_cdrs.extra_info,rated_cdrs.created_at,rated_cdrs.updated_at, null
|
||||
FROM rated_cdrs
|
||||
INNER JOIN cdrs_primary ON rated_cdrs.cgrid = cdrs_primary.cgrid
|
||||
INNER JOIN cdrs_extra ON rated_cdrs.cgrid = cdrs_extra.cgrid
|
||||
@@ -40,8 +39,4 @@ BEGIN
|
||||
end_id = end_id + step;
|
||||
END LOOP;
|
||||
END
|
||||
$$;
|
||||
ALTER TABLE cdrs RENAME COLUMN usage to usage_old;
|
||||
ALTER TABLE cdrs ADD usage NUMERIC(30);
|
||||
UPDATE cdrs SET usage = usage_old * 1000000000 WHERE usage_old IS NOT NULL;
|
||||
ALTER TABLE cdrs DROP COLUMN usage_old;
|
||||
$$;
|
||||
@@ -5,19 +5,19 @@
|
||||
|
||||
#DBs Config
|
||||
datadb="redis"
|
||||
stordb="mysql"
|
||||
stordb="postgres"
|
||||
echo "dataDB:"$datadb " storDB:"$stordb
|
||||
echo ""
|
||||
#dataDBs
|
||||
case $datadb in
|
||||
"redis")
|
||||
#Redis Config
|
||||
export cgr_from_host='127.0.0.1'
|
||||
export cgr_from_host='192.168.100.40'
|
||||
export cgr_from_port=6379
|
||||
export cgr_from_db=11
|
||||
export cgr_from_pass=''
|
||||
|
||||
export cgr_to_host='127.0.0.1'
|
||||
export cgr_to_host='192.168.100.40'
|
||||
export cgr_to_port=6379
|
||||
export cgr_to_db=10
|
||||
export cgr_to_pass='' # Not used
|
||||
@@ -55,7 +55,7 @@ db="cgrates"
|
||||
"postgres")
|
||||
#postgres Config
|
||||
user="cgrates"
|
||||
host="127.0.0.1"
|
||||
host="192.168.100.40"
|
||||
db="cgrates"
|
||||
;;
|
||||
esac
|
||||
@@ -89,14 +89,15 @@ mig=$?
|
||||
;;
|
||||
|
||||
"postgres")
|
||||
psql -U $user -h $host -d cgrates -f "$DIR"/pq_tables_update.sql
|
||||
psql -U $user -h $host -d cgrates -f "$DIR"/pg_tables_update.sql
|
||||
echo "not mysql"
|
||||
up=$?
|
||||
psql -U $user -h $host -d cgrates -f "$DIR"/pg_cdr_migration.sql
|
||||
psql -U $user -h $host -d cgrates -f "$DIR"/pg_cdr_migration.sql
|
||||
mig=$?
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ $up = 0 ] && [ $mig = 0 ]; then
|
||||
echo -e "\n\t+++ The script ran successfully ! +++\n"
|
||||
exit 0
|
||||
fi
|
||||
# if [ $up == 0 ] && [ $mig == 0 ]; then
|
||||
# echo -e "\n\t+++ The script ran successfully ! +++\n"
|
||||
# exit 0
|
||||
# fi
|
||||
|
||||
Reference in New Issue
Block a user