rgb-lib-migration 0.1.6

RGB wallet library migrations
Documentation
use super::m20220810_132253_create_coloring::Coloring;
use sea_orm_migration::prelude::*;
use sea_orm_migration::sea_orm::{ConnectionTrait, DbBackend, Statement};

pub struct Migration;

impl MigrationName for Migration {
    fn name(&self) -> &str {
        "m20221130_152708_delete_zero_allocations"
    }
}

#[async_trait::async_trait]
impl MigrationTrait for Migration {
    async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> {
        let query = Query::delete()
            .from_table(Coloring::Table)
            .cond_where(all![
                Expr::col(Coloring::ColoringType).eq(4),
                Expr::col(Coloring::Amount).eq("0"),
            ])
            .to_owned();
        let database_backend = manager.get_database_backend();
        let stmt_string = match database_backend {
            DbBackend::MySql => query.to_string(MysqlQueryBuilder),
            DbBackend::Postgres => query.to_string(PostgresQueryBuilder),
            DbBackend::Sqlite => query.to_string(SqliteQueryBuilder),
        };
        let stmt = Statement::from_string(database_backend, stmt_string);
        manager.get_connection().execute(stmt).await.map(|_| ())
    }

    async fn down(&self, _manager: &SchemaManager) -> Result<(), DbErr> {
        Ok(())
    }
}