27 lines
585 B
Rust
27 lines
585 B
Rust
use crate::{AbstractMigrations, Result};
|
|
|
|
use super::super::MongoDb;
|
|
|
|
mod init;
|
|
mod scripts;
|
|
|
|
#[async_trait]
|
|
impl AbstractMigrations for MongoDb {
|
|
async fn migrate_database(&self) -> Result<()> {
|
|
info!("Migrating the database.");
|
|
|
|
let list = self
|
|
.list_database_names(None, None)
|
|
.await
|
|
.expect("Failed to fetch database names.");
|
|
|
|
if list.iter().any(|x| x == "revolt") {
|
|
scripts::migrate_database(self).await;
|
|
} else {
|
|
init::create_database(self).await;
|
|
}
|
|
|
|
Ok(())
|
|
}
|
|
}
|