pleme-migrations 0.1.2

Database migration library for Pleme platform - safe migrations, zero-downtime
Documentation
//! Migration representation

use serde::{Deserialize, Serialize};

/// Migration metadata
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Migration {
    pub version: String,
    pub description: String,
    pub applied_at: Option<chrono::DateTime<chrono::Utc>>,
}

impl Migration {
    pub fn new(version: impl Into<String>, description: impl Into<String>) -> Self {
        Self {
            version: version.into(),
            description: description.into(),
            applied_at: None,
        }
    }
}

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn test_migration_creation() {
        let migration = Migration::new("001", "Initial schema");
        assert_eq!(migration.version, "001");
        assert_eq!(migration.description, "Initial schema");
        assert!(migration.applied_at.is_none());
    }
}