safe-migrate 0.7.0

Sync PostgreSQL metadata, then lint migrations offline
Documentation
use crate::analysis::facts::{AttributeFact, ConnectionTarget, PublicationScope};
use serde::{Deserialize, Serialize};

#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct PublicationState {
    pub name: String,
    pub owner: Option<String>,
    pub scope: PublicationScope,
    pub params: Vec<AttributeFact>,
    pub generation: u64,
}

#[derive(Debug, Clone, PartialEq)]
pub enum PublicationOverlay {
    Present(PublicationState),
    Dropped,
}

#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct SubscriptionState {
    pub name: String,
    pub owner: Option<String>,
    pub connection: ConnectionTarget,
    pub publications: Vec<String>,
    pub params: Option<Vec<AttributeFact>>,
    pub enabled: bool,
    pub slot_name: Option<String>,
    pub generation: u64,
}

#[derive(Debug, Clone, PartialEq)]
pub enum SubscriptionOverlay {
    Present(SubscriptionState),
    Dropped,
}