Skip to content

models

django_spire.contrib.sync.django.models

__all__ = ['SyncCheckpoint', 'SyncDeferredBackfill', 'SyncNodeLock', 'SyncSequenceCounter', 'SyncSession', 'SyncTombstone'] module-attribute

SyncCheckpoint

Bases: Model

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

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

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

after_keys = models.JSONField(default=dict, blank=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_checkpoint' class-attribute instance-attribute

__str__

Source code in django_spire/contrib/sync/django/models/checkpoint.py
def __str__(self) -> str:
    return (
        f'{self.peer_node_id} '
        f'peer={self.peer_sequence} '
        f'pushed={self.local_sequence_pushed}'
    )

SyncDeferredBackfill

Bases: Model

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

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

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

fk_value = models.CharField(max_length=255) 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_deferred_backfill' class-attribute instance-attribute
unique_together = [('model_label', 'record_key', 'attname')] class-attribute instance-attribute
indexes = [models.Index(fields=['model_label'], name='sync_deferred_bf_idx')] class-attribute instance-attribute

__str__

Source code in django_spire/contrib/sync/django/models/deferred_backfill.py
def __str__(self) -> str:
    return (
        f'{self.model_label}:{self.record_key} '
        f'{self.attname}={self.fk_value}'
    )

SyncNodeLock

Bases: Model

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

peer_node_id = models.CharField(max_length=255, default='', blank=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
unique_together = [('node_id', 'peer_node_id')] 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}<->{self.peer_node_id}'

SyncSequenceCounter

Bases: Model

name = models.CharField(max_length=255, primary_key=True) class-attribute instance-attribute

value = 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_sequence_counter' class-attribute instance-attribute

__str__

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

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

peer_node_id = models.CharField(max_length=255, default='', blank=True) 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'), models.Index(fields=['node_id', 'peer_node_id', 'status'], name='sync_session_pair_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.peer_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

sequence = models.BigIntegerField(default=0, db_index=True) class-attribute instance-attribute

origin_node = models.CharField(max_length=255, default='', blank=True) 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', 'sequence'], name='sync_tombstone_model_seq_idx'), 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} '
        f'seq={self.sequence} ts={self.timestamp}'
    )