(base_url: &str, db_name: &str)
| 10 | }; |
| 11 | |
| 12 | pub async fn setup(base_url: &str, db_name: &str) -> DatabaseConnection { |
| 13 | if cfg!(feature = "sqlx-mysql") { |
| 14 | let url = format!("{base_url}/mysql"); |
| 15 | let db = Database::connect(&url).await.unwrap(); |
| 16 | let _drop_db_result = db |
| 17 | .execute(Statement::from_string( |
| 18 | DatabaseBackend::MySql, |
| 19 | format!("DROP DATABASE IF EXISTS `{db_name}`;"), |
| 20 | )) |
| 21 | .await; |
| 22 | |
| 23 | let _create_db_result = db |
| 24 | .execute(Statement::from_string( |
| 25 | DatabaseBackend::MySql, |
| 26 | format!("CREATE DATABASE `{db_name}`;"), |
| 27 | )) |
| 28 | .await; |
| 29 | |
| 30 | let url = format!("{base_url}/{db_name}"); |
| 31 | Database::connect(&url).await.unwrap() |
| 32 | } else if cfg!(feature = "sqlx-postgres") { |
| 33 | let url = format!("{base_url}/postgres"); |
| 34 | let db = Database::connect(&url).await.unwrap(); |
| 35 | let _drop_db_result = db |
| 36 | .execute(Statement::from_string( |
| 37 | DatabaseBackend::Postgres, |
| 38 | format!("DROP DATABASE IF EXISTS \"{db_name}\";"), |
| 39 | )) |
| 40 | .await; |
| 41 | |
| 42 | let _create_db_result = db |
| 43 | .execute(Statement::from_string( |
| 44 | DatabaseBackend::Postgres, |
| 45 | format!("CREATE DATABASE \"{db_name}\";"), |
| 46 | )) |
| 47 | .await; |
| 48 | |
| 49 | let url = format!("{base_url}/{db_name}"); |
| 50 | Database::connect(&url).await.unwrap() |
| 51 | } else { |
| 52 | let mut options: ConnectOptions = base_url.into(); |
| 53 | options.sqlx_logging(false); |
| 54 | Database::connect(options).await.unwrap() |
| 55 | } |
| 56 | } |
| 57 | |
| 58 | pub async fn tear_down(base_url: &str, db_name: &str) { |
| 59 | if cfg!(feature = "sqlx-mysql") { |
no test coverage detected