1use sea_orm::{DatabaseConnection, DbErr};
4use sea_orm_migration::MigratorTrait as _;
5
6pub struct Connection(DatabaseConnection);
8
9impl Connection {
10 pub async fn try_from(db: DatabaseConnection) -> Result<Self, DbErr> {
13 crate::migration::Migrator::down(&db, None).await?;
14 db.get_schema_registry("flix_db::*").sync(&db).await?;
15 db.get_schema_registry("flix_db::*").sync(&db).await?;
16 crate::migration::Migrator::up(&db, None).await?;
17 Ok(Self(db))
18 }
19}
20
21impl AsRef<DatabaseConnection> for Connection {
22 fn as_ref(&self) -> &DatabaseConnection {
23 &self.0
24 }
25}
26
27#[cfg(test)]
28impl Connection {
29 pub(crate) fn take(self) -> DatabaseConnection {
30 self.0
31 }
32}