mirror of
https://github.com/netbox-community/netbox.git
synced 2026-03-27 11:51:50 +01:00
49 lines
1.5 KiB
Python
49 lines
1.5 KiB
Python
# Generated by Django 5.2.5 on 2025-09-09 16:48
|
|
|
|
from django.db import migrations, models
|
|
|
|
|
|
def get_active(apps, schema_editor):
|
|
from django.core.cache import cache
|
|
ConfigRevision = apps.get_model('core', 'ConfigRevision')
|
|
version = None
|
|
revision = None
|
|
|
|
# Try and get the latest version from cache
|
|
try:
|
|
version = cache.get('config_version')
|
|
except Exception:
|
|
pass
|
|
|
|
# If there is a version in cache, attempt to set revision to the current version from cache
|
|
# If the version in cache does not exist or there is no version, try the lastest revision in the database
|
|
if not version or (version and not (revision := ConfigRevision.objects.filter(pk=version).first())):
|
|
revision = ConfigRevision.objects.order_by('-created').first()
|
|
|
|
# If there is a revision set, set the active revision
|
|
if revision:
|
|
revision.active = True
|
|
revision.save()
|
|
|
|
|
|
class Migration(migrations.Migration):
|
|
|
|
dependencies = [
|
|
('core', '0018_concrete_objecttype'),
|
|
]
|
|
|
|
operations = [
|
|
migrations.AddField(
|
|
model_name='configrevision',
|
|
name='active',
|
|
field=models.BooleanField(default=False),
|
|
),
|
|
migrations.RunPython(code=get_active, reverse_code=migrations.RunPython.noop),
|
|
migrations.AddConstraint(
|
|
model_name='configrevision',
|
|
constraint=models.UniqueConstraint(
|
|
condition=models.Q(('active', True)), fields=('active',), name='unique_active_config_revision'
|
|
),
|
|
),
|
|
]
|