mirror of
https://github.com/bspeice/metrik
synced 2024-11-23 07:38:09 -05:00
Initial fixes, bump the version
This commit is contained in:
parent
7d56d68728
commit
e88547c47d
@ -1,2 +1,2 @@
|
|||||||
__version__ = '0.3.7'
|
__version__ = '0.3.8'
|
||||||
__release__ = __version__
|
__release__ = __version__
|
@ -2,6 +2,8 @@ from pymongo import MongoClient
|
|||||||
import logging
|
import logging
|
||||||
import argparse
|
import argparse
|
||||||
|
|
||||||
|
from metrik import __version__
|
||||||
|
|
||||||
|
|
||||||
def open_connection(host, port):
|
def open_connection(host, port):
|
||||||
return MongoClient(host=host, port=port)
|
return MongoClient(host=host, port=port)
|
||||||
@ -10,26 +12,26 @@ def open_connection(host, port):
|
|||||||
def merge(con1, con2, database_name='metrik'):
|
def merge(con1, con2, database_name='metrik'):
|
||||||
database1 = con1[database_name]
|
database1 = con1[database_name]
|
||||||
database2 = con2[database_name]
|
database2 = con2[database_name]
|
||||||
collections = database1.collection_names()
|
collections = database1.collection_names(include_system_collections=False)
|
||||||
for collection_name in collections:
|
for collection_name in collections:
|
||||||
collection1 = database1[collection_name]
|
collection1 = database1[collection_name]
|
||||||
collection2 = database2[collection_name]
|
collection2 = database2[collection_name]
|
||||||
for item in collection1.find():
|
for item in collection1.find():
|
||||||
if collection2.find({'_id': item['_id']}) is None:
|
if '_id' in item and collection2.find_one({'_id': item['_id']}) is None:
|
||||||
collection2.save(item)
|
collection2.save(item)
|
||||||
collection1.delete_one({'_id': item['_id']})
|
collection1.delete_one({'_id': item['_id']})
|
||||||
else:
|
else:
|
||||||
logging.warning('Not moving item {} as the same ID already'
|
logging.warning("Not moving item '{}' as the same ID already"
|
||||||
' exists in the `right` database.'.format(
|
" exists in the `right` database.".format(
|
||||||
item['_id']
|
item.get('_id', '')
|
||||||
))
|
))
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
parser = argparse.ArgumentParser()
|
parser = argparse.ArgumentParser()
|
||||||
parser.add_argument('-h', '--host-1', dest='host1',
|
parser.add_argument('-g', '--host-1', dest='host1', required=True,
|
||||||
help='The `left` database to copy from')
|
help='The `left` database to copy from')
|
||||||
parser.add_argument('-g', '--host-2', dest='host2',
|
parser.add_argument('-f', '--host-2', dest='host2', required=True,
|
||||||
help='The `right` database to copy into')
|
help='The `right` database to copy into')
|
||||||
parser.add_argument('-p', '--port-1', default=27017, dest='port1', type=int,
|
parser.add_argument('-p', '--port-1', default=27017, dest='port1', type=int,
|
||||||
help='The port number of the `left` database')
|
help='The port number of the `left` database')
|
||||||
@ -37,10 +39,14 @@ def main():
|
|||||||
help='The port number of the `right` database')
|
help='The port number of the `right` database')
|
||||||
parser.add_argument('-d', '--database', default='metrik',
|
parser.add_argument('-d', '--database', default='metrik',
|
||||||
help='The database to merge from one host to the other')
|
help='The database to merge from one host to the other')
|
||||||
|
parser.add_argument('-v', '--version', action='version', version=__version__)
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
con1 = open_connection(args.host1, args.port1)
|
con1 = open_connection(args.host1, args.port1)
|
||||||
con2 = open_connection(args.host2, args.port2)
|
con2 = open_connection(args.host2, args.port2)
|
||||||
merge(con1, con2, args.database)
|
merge(con1, con2, args.database)
|
||||||
|
con1.close()
|
||||||
|
con2.close()
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
Loading…
Reference in New Issue
Block a user