ifms-conselho/backup_db.py
2023-03-08 10:40:06 -04:00

43 lines
1.5 KiB
Python

from libx import *
def backup_full_db(ip1,porta1,user1,senha1,db1,ip2,porta2,user2,senha2,db2):
if ip1 =="localhost":
link1 = f"mongodb://{ip1}:{str(porta1)}/?readPreference=primary"
else:
link1 = f"mongodb://{user1}:{senha1}@{ip1}:{porta1}/?authSource=admin&readPreference=primary&ssl=false"
if ip2 =="localhost":
link2 = f"mongodb://{ip2}:{str(porta2)}/?readPreference=primary"
else:
link2 = f"mongodb://{user2}:{senha2}@{ip2}:{porta2}/?authSource=admin&readPreference=primary&ssl=false"
db_origem = MongoClient(link1).get_database(db1)
db_destino = MongoClient(link2).get_database(db2)
lista_colecoes = db_origem.list_collection_names()
for c in lista_colecoes:
print("_"*80)
print(c,type(c))
print("_"*80)
col = db_destino[c]
col_origem = db_origem.get_collection(c)
col_destino = db_destino.get_collection(c)
t = col_origem.count_documents({})
n = 0
for doc in col_origem.find():
if c in ["comentarios","marcas","matriculas"]:
doc["ano_sem"] = "2021-1"
n+=1
col_destino.update_one({"_id":doc["_id"]},{"$set":doc},upsert=True)
print(c,n," / ",t)
# backup_full_db("0.0.0.0",2323,"USERNAME","PASSWORD","connect","localhost",27017,"","","NOME_DO_BACKUP")
# backup_full_db("34.71.239.163",2323,"HsbCUfRc4r30d0lBNQ3lZIsVPBPfSrOwltz8JFP00imR38MZvM","oGLOx7sbBuuMywyryj97kFblWOgYNjLMRBiYH4RTVvYqqnX0J6","connect","paas1.pp.ifms.edu.br",27017,"serti","TYS5DNpGPmBkFaVK","ifmsconselho")