mirror of https://github.com/buster-so/buster.git
24 lines
691 B
Rust
24 lines
691 B
Rust
use anyhow::Result;
|
|
use database::pool::get_pg_pool;
|
|
use diesel::{Connection, ConnectionResult, PgConnection, QueryResult, RunQueryDsl, Table};
|
|
use diesel_async::{AsyncPgConnection, RunQueryDsl as AsyncRunQueryDsl};
|
|
use std::fmt::Debug;
|
|
|
|
/// Helper function to temporarily drop and recreate tables for testing
|
|
pub async fn with_table_dropped<T>(tables: &[&T]) -> Result<()>
|
|
where
|
|
T: Table + Debug,
|
|
T::AllColumns: diesel::QueryId,
|
|
{
|
|
let mut conn = get_pg_pool().get().await?;
|
|
|
|
// Delete all data from tables
|
|
for table in tables {
|
|
diesel::delete(table)
|
|
.execute(&mut conn)
|
|
.await
|
|
.unwrap_or_default();
|
|
}
|
|
|
|
Ok(())
|
|
} |