pl063/weather-station

View on GitHub
reading_sensors/cron_migrate_collection.py

Summary

Maintainability
A
0 mins
Test Coverage
#cron job to migrate all entries of col1 to col2 at midnight additional settings are required in OS

from pymongo import MongoClient
import logging
logging.basicConfig(filename="main_weather.log", encoding="utf-8", level=logging.DEBUG)

from utils import extract_time
uri = "mongodb+srv://weather-station.lllcyel.mongodb.net/Weather?authSource=%24external&authMechanism=MONGODB-X509&retryWrites=true&w=majority"


def migrate_to_col (col1, col2) :
        my_list = list(col1.find({}))
        col2.insert_many(my_list)

def main_migration () :
        try:
                client = MongoClient(uri,
                                tls=True,
                                tlsCertificateKeyFile='/home/viper/weather-station/reading_sensors/cert.pem',
                                )
                #logging.info("Pinged your deployment. You successfully connected to MongoDB!" + "<<cron" + extract_time())
                logging.info("Migrating tool is running" + extract_time())
                db = client["Weather"]
                col1 = db["current_days"]
                col2 = db["current_weeks"]

                x = migrate_to_col(col1, col2)
                #print(x)
                col1.delete_many({})
                logging.info("Migrated" + extract_time())
        except Exception as e:
                logging.info(e)
                pass