1use sea_orm::{DatabaseConnection, DbErr};
4use sea_orm_migration::MigratorTrait as _;
5
6#[derive(Debug)]
8pub struct Connection(DatabaseConnection);
9
10impl Connection {
11 #[inline]
17 pub async fn try_from(db: DatabaseConnection) -> Result<Self, DbErr> {
18 crate::migration::Migrator::down(&db, None).await?;
25 db.get_schema_registry("flix_db::*").sync(&db).await?;
26 db.get_schema_registry("flix_db::*").sync(&db).await?;
27 crate::migration::Migrator::up(&db, None).await?;
28 Ok(Self(db))
29 }
30}
31
32impl AsRef<DatabaseConnection> for Connection {
33 #[inline]
34 fn as_ref(&self) -> &DatabaseConnection {
35 &self.0
36 }
37}
38
39#[cfg(test)]
40impl Connection {
41 pub(crate) fn take(self) -> DatabaseConnection {
42 self.0
43 }
44}