lib.rs 41 lignes · 1315 octets
//! SeaORM migrations for the rustwarden-fediverse crate.
//!
//! Tables created (chronological order):
//!
//! - `fediverse_trusted_domains` (RFC 0004)
//! - `fediverse_blocked_domains` (RFC 0004)
//! - `fediverse_outbound_queue`  (RFC 0011)
//! - `fediverse_auth_challenges` (RFC 0006)
//! - `fediverse_pending_invites` (RFC 0009)
//! - `fediverse_resource_shares` (RFC 0029)
//! - `fediverse_personal_access_tokens` (RFC 0030)
//!
//! Run after the core migrator:
//! ```bash
//! cargo run --bin migrate -- up
//! cargo run --bin migrate-fediverse -- up
//! ```

pub use sea_orm_migration::prelude::*;

pub mod m20260512_000001_fediverse_protocol_schema;
pub mod m20260516_000002_remote_resource_shares;
pub mod m20260516_000003_remote_pat;

/// Migrator for the rustwarden-fediverse crate.
pub struct FediverseMigrator;

#[async_trait::async_trait]
impl MigratorTrait for FediverseMigrator {
    fn migration_table_name() -> sea_orm::DynIden {
        Alias::new("seaql_fediverse_migrations").into_iden()
    }

    fn migrations() -> Vec<Box<dyn MigrationTrait>> {
        vec![
            Box::new(m20260512_000001_fediverse_protocol_schema::Migration),
            Box::new(m20260516_000002_remote_resource_shares::Migration),
            Box::new(m20260516_000003_remote_pat::Migration),
        ]
    }
}