Skip to content

models

django_spire.contrib.sync.models

__all__ = ['SyncCheckpoint', 'SyncSession'] module-attribute

SyncCheckpoint

Bases: Model

after_keys = models.JSONField(default=dict, blank=True) class-attribute instance-attribute

node_id = models.CharField(max_length=255, unique=True) class-attribute instance-attribute

timestamp = models.BigIntegerField(default=0) class-attribute instance-attribute

updated_at = models.DateTimeField(auto_now=True) class-attribute instance-attribute

Meta

app_label = 'sync' class-attribute instance-attribute
db_table = 'django_spire_sync_checkpoint' class-attribute instance-attribute

__str__

Source code in django_spire/contrib/sync/django/models/checkpoint.py
def __str__(self) -> str:
    return f'{self.node_id} @ {self.timestamp}'

SyncSession

Bases: Model

id = models.UUIDField(primary_key=True, default=(uuid.uuid4), editable=False) class-attribute instance-attribute

node_id = models.CharField(max_length=255) class-attribute instance-attribute

phase = models.CharField(max_length=20, default='collecting') class-attribute instance-attribute

started_at = models.DateTimeField(auto_now_add=True) class-attribute instance-attribute

completed_at = models.DateTimeField(null=True, blank=True) class-attribute instance-attribute

duration_ms = models.PositiveIntegerField(null=True, blank=True) class-attribute instance-attribute

status = models.CharField(max_length=20, default='pending') class-attribute instance-attribute

records_pushed = models.PositiveIntegerField(default=0) class-attribute instance-attribute

records_applied = models.PositiveIntegerField(default=0) class-attribute instance-attribute

records_created = models.PositiveIntegerField(default=0) class-attribute instance-attribute

records_deleted = models.PositiveIntegerField(default=0) class-attribute instance-attribute

conflicts = models.PositiveIntegerField(default=0) class-attribute instance-attribute

errors = models.PositiveIntegerField(default=0) class-attribute instance-attribute

details = models.JSONField(default=dict, blank=True) class-attribute instance-attribute

Meta

app_label = 'sync' class-attribute instance-attribute
db_table = 'django_spire_sync_session' class-attribute instance-attribute
indexes = [models.Index(fields=['node_id', 'status'], name='sync_session_node_status_idx')] class-attribute instance-attribute
ordering = ['-started_at'] class-attribute instance-attribute

__str__

Source code in django_spire/contrib/sync/django/models/session.py
def __str__(self) -> str:
    return f'{self.node_id} [{self.status}] {self.started_at}'