Skip to content

models

django_spire.contrib.sync.django.models

__all__ = ['SyncCheckpoint', 'SyncNodeLock', 'SyncSession', 'SyncTombstone'] 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}'

SyncNodeLock

Bases: Model

node_id = models.CharField(max_length=255, primary_key=True) 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_node_lock' class-attribute instance-attribute

__str__

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

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}'

SyncTombstone

Bases: Model

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

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

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

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

Meta

app_label = 'sync' class-attribute instance-attribute
db_table = 'django_spire_sync_tombstone' class-attribute instance-attribute
unique_together = [('model_label', 'record_key')] class-attribute instance-attribute
indexes = [models.Index(fields=['model_label', 'timestamp'], name='sync_tombstone_model_ts_idx')] class-attribute instance-attribute

__str__

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