mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-11 18:16:24 +05:00
Refactored dbsmerge_redis script
This commit is contained in:
@@ -8,24 +8,28 @@
|
||||
# behaviour:
|
||||
# ^ the script will not overwrite keys on the destination server/database
|
||||
|
||||
from_host = '127.0.0.1'
|
||||
from_port = 6379
|
||||
from_db = 11
|
||||
from_pass = ''
|
||||
|
||||
to_host = '127.0.0.1'
|
||||
to_port = 6379
|
||||
to_db = 10
|
||||
to_pass = '' # Not used
|
||||
|
||||
keymask = '*'
|
||||
timeout = 2000
|
||||
|
||||
import time
|
||||
import redis
|
||||
import argparse
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument("-host", "--host",default="127.0.0.1", help='default: "127.0.0.1"')
|
||||
parser.add_argument("-port", "--port", type=int ,default=6379, help='default: 6379')
|
||||
parser.add_argument("-pass", "--password", default="", help='default: ""')
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
from_host = args.host
|
||||
from_port = args.port
|
||||
from_pass = args.password
|
||||
|
||||
from_redis = redis.Redis(host = from_host, port = from_port, password=from_pass, db = from_db)
|
||||
to_redis = redis.Redis(host = to_host, port = to_port, db = to_db)
|
||||
to_redis = redis.Redis(host = from_host, port = from_port, db = to_db)
|
||||
|
||||
to_keys = to_redis.keys(keymask)
|
||||
from_keys = from_redis.keys(keymask)
|
||||
@@ -34,28 +38,14 @@ print('Found %d keys on destination.' % len(to_keys))
|
||||
|
||||
# keys found
|
||||
if len(from_keys) > 0:
|
||||
# same server
|
||||
if from_host == to_host and from_port == to_port:
|
||||
print('Migrating on same server...')
|
||||
i = 0
|
||||
for key in from_keys:
|
||||
i += 1
|
||||
print('Moving key %s (%d of %d)...' % (key, i, len(from_keys)))
|
||||
from_redis.execute_command('MOVE', key, to_db)
|
||||
print('Migrating on same server...')
|
||||
i = 0
|
||||
for key in from_keys:
|
||||
i += 1
|
||||
print('Moving key %s (%d of %d)...' % (key, i, len(from_keys)))
|
||||
from_redis.execute_command('MOVE', key, to_db)
|
||||
|
||||
# different servers
|
||||
else:
|
||||
print('Migrating between different servers...')
|
||||
i = 0
|
||||
for key in from_keys:
|
||||
i += 1
|
||||
print('Moving key %s (%d of %d)...' % (key, i, len(from_keys))),
|
||||
try:
|
||||
from_redis.execute_command('MIGRATE', to_host, to_port, key, to_db, timeout)
|
||||
except redis.exceptions.ResponseError, e:
|
||||
if not 'ERR Target key name is busy' in str(e):
|
||||
raise e
|
||||
print('Done.')
|
||||
print('Done.')
|
||||
# done
|
||||
from_keys_after = from_redis.keys(keymask)
|
||||
to_keys_after = to_redis.keys(keymask)
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
# depends:
|
||||
# ^ mysql (debian: python-mysql.connector)
|
||||
|
||||
host = '127.0.0.1'
|
||||
host = '192.168.100.40'
|
||||
port = 3306
|
||||
database = 'cgrates'
|
||||
user = 'root'
|
||||
|
||||
Reference in New Issue
Block a user