Skip to main content

rustbasic_core/
seeder.rs

1use crate::sql::AnyPool;
2use crate::colored::Colorize;
3
4#[crate::async_trait]
5pub trait SeederTrait: Send + Sync {
6    async fn run<'a>(&'a self, db: &'a crate::sql::AnyPool) -> Result<(), crate::sql::Error>;
7}
8
9pub async fn run_seeders(db: &AnyPool, seeders: Vec<Box<dyn SeederTrait + Send + Sync>>) {
10    println!("\n{}", "🌱 Menjalankan Seeder Database...".blue().bold());
11    
12    for seeder in seeders {
13        if let Err(e) = seeder.run(db).await {
14            println!("{} {}", "❌ Gagal menjalankan seeder:".red(), e);
15        }
16    }
17    
18    println!("{}", "✅ Semua seeder selesai diproses!".green().bold());
19}