-
Notifications
You must be signed in to change notification settings - Fork 0
/
reset_mwb.py
31 lines (22 loc) · 1.06 KB
/
reset_mwb.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import logging
import pathlib
import subprocess
import sys
from mapping_workbench.backend.config import settings
logging.basicConfig(stream=sys.stdout, level=logging.INFO)
if __name__ == "__main__":
result_backup_folder_path = pathlib.Path(__file__).parent.resolve() / ".mongodump"
subprocess_result = subprocess.run(
[f'mongosh {settings.DATABASE_URL}{settings.DATABASE_NAME} --eval "db.dropDatabase()"'],
capture_output=True, text=True, shell=True)
if subprocess_result.returncode != 0:
raise Exception("Error clearing MWB database.", subprocess_result.stderr)
else:
logging.info("Deleting MWB database done.")
subprocess_result = subprocess.run(
[f'mongorestore --uri {settings.DATABASE_URL}{settings.DATABASE_NAME} {result_backup_folder_path}/{settings.DATABASE_NAME}'],
capture_output=True, text=True, shell=True)
if subprocess_result.returncode != 0:
raise Exception("Error clearing MWB database.", subprocess_result.stderr)
else:
logging.info("Mongo dump restored successfully.")