base
base
Invariant Base Classes
Invariants are the verification rules for the two comparisons in django-migration-audit.
Comparison A Invariants: Trust Verification
These invariants verify migration history ↔ migration code consistency: - No modified migration files - No missing migration files - No fake-applied migrations - Squash migrations properly replaced
Comparison B Invariants: Reality Check
These invariants verify expected schema ↔ actual schema consistency: - No schema drift - All expected tables exist - All expected columns exist with correct types - All expected constraints and indexes exist
Custom Invariants
Extend the base classes in this module to implement custom verification rules for your specific use cases.
Severity
Bases: Enum
Severity levels for invariant violations.
ERROR = 'error'
class-attribute
instance-attribute
WARNING = 'warning'
class-attribute
instance-attribute
INFO = 'info'
class-attribute
instance-attribute
Violation(invariant_name, severity, message, details=None)
dataclass
Represents a single invariant violation.
invariant_name
instance-attribute
severity
instance-attribute
message
instance-attribute
details = None
class-attribute
instance-attribute
__str__()
Invariant
Bases: ABC
Base class for all invariants.
Invariants are verification rules that check for consistency between different inputs in the django-migration-audit system.
name
abstractmethod
property
Human-readable name for this invariant.
description
abstractmethod
property
Description of what this invariant checks.
check(**kwargs)
abstractmethod
Check the invariant and return any violations.
Returns:
| Type | Description |
|---|---|
List[Violation]
|
List of Violation objects (empty list if no violations) |
ComparisonAInvariant
Bases: Invariant
Base class for Comparison A invariants (Trust Verification).
These invariants verify migration history ↔ migration code consistency.
ComparisonBInvariant
Bases: Invariant
Base class for Comparison B invariants (Reality Check).
These invariants verify expected schema ↔ actual schema consistency.
NoMissingMigrationFiles
Bases: ComparisonAInvariant
Verify that all applied migrations have corresponding files on disk.
name
property
description
property
check(migration_history)
SquashMigrationsProperlyReplaced
Bases: ComparisonAInvariant
Verify that squashed migrations properly replace their originals.
name
property
description
property
check(migration_history)
AllExpectedTablesExist
Bases: ComparisonBInvariant
Verify that all expected tables exist in the actual database.
name
property
description
property
check(expected_schema, actual_schema)
NoUnexpectedTables
Bases: ComparisonBInvariant
Verify that no unexpected tables exist in the actual database.
name
property
description
property
check(expected_schema, actual_schema)
AllExpectedColumnsExist
Bases: ComparisonBInvariant
Verify that all expected columns exist with correct types.