Files
db/src/migration/m20260323_000016_remove_orphaned_artists.rs
T
2026-03-23 17:11:38 -04:00

26 lines
827 B
Rust

use sea_orm_migration::prelude::*;
#[derive(DeriveMigrationName)]
pub struct Migration;
#[async_trait::async_trait]
impl MigrationTrait for Migration {
async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> {
let conn = manager.get_connection();
conn.execute_unprepared(
"DELETE FROM artists WHERE id NOT IN (
SELECT DISTINCT artist_id FROM tracks WHERE artist_id IS NOT NULL
UNION SELECT DISTINCT artist_id FROM wanted_items WHERE artist_id IS NOT NULL
UNION SELECT DISTINCT artist_id FROM albums WHERE artist_id IS NOT NULL
)",
)
.await?;
Ok(())
}
async fn down(&self, _manager: &SchemaManager) -> Result<(), DbErr> {
// Orphaned artists cannot be restored
Ok(())
}
}