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
32
use crate::{models::Meta, store::MONGODB_CLIENT_STORE};
use mongodb::sync::Client;
use std::error::Error;
pub fn del_test_db(
project_name: &str,
unique_project_key: &str,
models: &Vec<Meta>,
) -> Result<(), Box<dyn Error>> {
let db_mango_tech: String = format!("mango_tech__{}__{}", project_name, unique_project_key);
let client_store = MONGODB_CLIENT_STORE.read()?;
for meta in models {
let client: &Client = client_store.get(meta.db_client_name.as_str()).unwrap();
let database_names: Vec<String> = client.list_database_names(None, None)?;
if database_names.contains(&db_mango_tech) {
client.database(db_mango_tech.as_str()).drop(None)?;
}
if database_names.contains(&meta.database_name) {
client.database(meta.database_name.as_str()).drop(None)?;
}
}
Ok(())
}