safe-migrate 0.8.0

Check PostgreSQL migrations against a synchronized database baseline
Documentation
use crate::_internal::ast::identifiers::ObjectId;
use serde::{Deserialize, Serialize};

#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize)]
pub enum ConstraintKind {
    Check,
    ForeignKey,
    PrimaryKey,
    Unique,
    Exclusion,
    NotNull,
}

#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct ConstraintState {
    pub table_id: ObjectId,
    pub name: String,
    pub kind: ConstraintKind,
    pub validated: bool,
    /// The PostgreSQL index adopted by a primary/unique/exclusion
    /// constraint, when catalog evidence provides `pg_constraint.conindid`.
    /// Local constraints and constraint kinds without a backing index retain
    /// `None` until an authoritative identity is available.
    pub backing_index: Option<ObjectId>,
}