tea_orm/queries/
create_random_database.rs

1use anyhow::Result;
2use names::Generator;
3use names::Name;
4use sea_orm::DatabaseConnection;
5
6const TEST_DATABASE_BASENAME: &'static str = "test-database";
7
8use crate::queries::query_create_database;
9
10/// Runs a query which will create a new database with a randomly generated name.
11/// The name of this new database will be returned.
12pub async fn query_create_random_database(db_connection: &DatabaseConnection) -> Result<String> {
13    let db_name = random_db_name();
14
15    query_create_database(&db_connection, &db_name).await?;
16
17    Ok(db_name)
18}
19
20fn random_db_name() -> String {
21    let mut generator = Generator::with_naming(Name::Numbered);
22    let db_name = generator
23        .next()
24        .expect("Expect generating a name should always succeed");
25
26    format!("{}--{}", TEST_DATABASE_BASENAME, db_name,)
27}