Commit bc798330 authored by ajil.k's avatar ajil.k

added

parent 28acb8fc
import pymongo
import pandas as pd
# Connect to the MongoDB instance
client = pymongo.MongoClient("mongodb://ilens:ilens%401234@192.168.0.220:4720/")
col_list = ['mp201a', 'glens', 'ilens', 'ilens_ir4.0', 'dubai-munc', 'epda-rak', 'camw', 'ilens-avis', 'old_glens',
'old_calixto', "ilens-mc"]
dict_missing_docs = {}
mac = []
device_id = []
old_collection_name = []
old_db = client['Iot_manager(Test)']
for collection_name in col_list:
# Select the database and collection to compare
collection1 = old_db[collection_name]
new_db = client["Assets_manager"]
iot_devices_details_col = new_db['Iot_devices_details']
# Retrieve all documents from the first collection
docs1 = collection1.find()
# Retrieve all documents from the second collection
docs2 = iot_devices_details_col.find()
# Create a set of all the values in the field to compare for the second collection
values2 = set([doc["mac_address"] for doc in docs2])
# Iterate through the first collection and check if each document exists in the second collection
missing_docs = []
for doc in docs1:
if doc["mac"] not in values2:
missing_docs.append(doc)
# Print the missing documents
for doc in missing_docs:
mac.append(doc["mac"])
device_id.append(doc["deviceId"])
old_collection_name.append(collection_name)
dict_missing_docs["device_id"] = device_id
dict_missing_docs["mac"] = mac
dict_missing_docs["old_collection_name"] = old_collection_name
print(dict_missing_docs)
df = pd.DataFrame(dict_missing_docs)
# Store the DataFrame as a CSV file
df.to_csv('missing_devices.csv', index=False)
\ No newline at end of file
......@@ -2,10 +2,10 @@ import bson
import pymongo
# Set up a MongoDB client
client = pymongo.MongoClient('mongodb://ilens:ilens%401234@192.168.0.220:4720/?authSource=admin')
client = pymongo.MongoClient('mongodb://192.168.3.145:2717')
# Select the database and collection to restore
db = client["Iot_manager(Test)"]
db = client["Assets_manager(old)"]
col_list = ['mp201a', 'glens', 'ilens', 'ilens_ir4.0', 'dubai-munc', 'epda-rak', 'camw', 'ilens-avis', 'old_glens',
'old_calixto', "ilens-mc"]
for collection_name in col_list:
......
import pymongo
import pytz
""" mongo dumping"""
import os
import subprocess
import zipfile
......@@ -9,57 +7,60 @@ from datetime import datetime, timedelta
from schema import DeviceDetails, DeviceParameters
# Set the MongoDB URL to connect to
mongo_url = 'mongodb://ilens:ilens%401234@192.168.0.220:4720/?authSource=admin'
# Set the path to the mongodump executable
mongodump_path = 'C:/Program Files/MongoDB/Server/6.0/bin/mongodump.exe'
# Set the name of the database to be dumped
db_name = 'Iot_manager(Test)'
# Set the path where the dump will be saved
dump_path = 'E:/Iot_manager(Test)/dumped_data'
# Build the command to be executed
command = [mongodump_path, '--uri', mongo_url, '--db', db_name, '--out', dump_path]
# Execute the command
subprocess.call(command)
# mongo restore
mongorestore_path = 'C:/Program Files/MongoDB/Server/6.0/bin/mongorestore.exe'
now = datetime.now()
date_str = now.strftime("%Y-%m-%d")
new_db_name = f"Iot_manager(Test)_copy_{date_str}"
restore_command = [mongorestore_path, '--uri', mongo_url, '--db', new_db_name, dump_path + "/" + db_name]
subprocess.call(restore_command)
def zip_folder(folder_path, zip_path):
with zipfile.ZipFile(zip_path, 'w', compression=zipfile.ZIP_DEFLATED) as zip:
for root, dirs, files in os.walk(folder_path):
for file in files:
file_path = os.path.join(root, file)
zip.write(file_path, file_path[len(folder_path):])
zip_folder(dump_path, 'E:/Iot_manager(Test)/dumped_data.zip')
""" end of mongo dumping and backup"""
#
# """ mongo dumping"""
#
# # Set the MongoDB URL to connect to
# mongo_url = 'mongodb://ilens:ilens%401234@192.168.0.220:4720/?authSource=admin'
#
# # Set the path to the mongodump executable
# mongodump_path = 'C:/Program Files/MongoDB/Server/6.0/bin/mongodump.exe'
#
# # Set the name of the database to be dumped
# db_name = 'Iot_manager(Test)'
#
# # Set the path where the dump will be saved
# dump_path = 'E:/Iot_manager(Test)/dumped_data'
#
# # Build the command to be executed
# command = [mongodump_path, '--uri', mongo_url, '--db', db_name, '--out', dump_path]
#
# # Execute the command
# subprocess.call(command)
#
# # mongo restore
#
# mongorestore_path = 'C:/Program Files/MongoDB/Server/6.0/bin/mongorestore.exe'
# now = datetime.now()
#
# date_str = now.strftime("%Y-%m-%d")
#
# new_db_name = f"Iot_manager(Test)_copy_{date_str}"
#
# restore_command = [mongorestore_path, '--uri', mongo_url, '--db', new_db_name, dump_path + "/" + db_name]
# subprocess.call(restore_command)
#
#
# def zip_folder(folder_path, zip_path):
# with zipfile.ZipFile(zip_path, 'w', compression=zipfile.ZIP_DEFLATED) as zip:
# for root, dirs, files in os.walk(folder_path):
# for file in files:
# file_path = os.path.join(root, file)
# zip.write(file_path, file_path[len(folder_path):])
#
#
# zip_folder(dump_path, 'E:/Iot_manager(Test)/dumped_data.zip')
#
# """ end of mongo dumping and backup"""
""" mongo migration"""
# set up the connection to MongoDB
client1 = pymongo.MongoClient("mongodb://ilens:ilens%401234@192.168.0.220:4720/")
client1 = pymongo.MongoClient("mongodb://192.168.3.145:2717")
col_list = ['mp201a', 'glens', 'ilens', 'ilens_ir4.0', 'dubai-munc', 'epda-rak', 'camw', 'ilens-avis', 'old_glens',
'old_calixto', "ilens-mc"]
db1 = client1["Iot_manager(Test)"]
db1 = client1["Assets_manager(old)"]
db2 = client1["Assets_manager"]
device_details = db2["Iot_devices_details"]
......@@ -289,15 +290,19 @@ for collection_name in col_list:
terminal=terminal
)
device_details.insert_one(device_data.dict())
device_details_status = device_details.insert_one(device_data.dict())
if device_details_status.inserted_id:
device_details.create_index("software_name")
device_details.create_index("device_id")
device_details.create_index("mac_address")
parameters_details.insert_one(parameter_data.dict())
parameters_details_status = parameters_details.insert_one(parameter_data.dict())
if parameters_details_status.inserted_id:
parameters_details.create_index("mac_address")
parameters_details.create_index("last_sync")
parameters_details.create_index("software_name")
else:
device_details.delete_one({"mac_address": mac_address})
print(f"{collection_name} - {i}")
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment