0047_auto_20180210_1829.py 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. # Generated by Django 2.0.2 on 2018-02-10 17:29
  2. import django.core.validators
  3. from django.db import migrations, models
  4. def forward(apps, schema_editor):
  5. db_alias = schema_editor.connection.alias
  6. Switch = apps.get_model("services", "Switch")
  7. for sw in Switch.objects.using(db_alias).all():
  8. sw.first_port = sw.ports.order_by('port').first().port
  9. sw.last_port = sw.ports.order_by('port').last().port
  10. sw.save()
  11. def backward(apps, schema_editor):
  12. db_alias = schema_editor.connection.alias
  13. Switch = apps.get_model("services", "Switch")
  14. for sw in Switch.objects.using(db_alias).all():
  15. sw.size = sw.last_port - sw.first_port + 1
  16. sw.save()
  17. class Migration(migrations.Migration):
  18. dependencies = [
  19. ('services', '0046_auto_20180210_1824'),
  20. ]
  21. operations = [
  22. migrations.AddField(
  23. model_name='switch',
  24. name='first_port',
  25. field=models.IntegerField(default=0, validators=[django.core.validators.MinValueValidator(0)], verbose_name='Premier port'),
  26. preserve_default=False,
  27. ),
  28. migrations.AddField(
  29. model_name='switch',
  30. name='last_port',
  31. field=models.IntegerField(default=64, validators=[django.core.validators.MaxValueValidator(64)], verbose_name='Dernier port'),
  32. preserve_default=False,
  33. ),
  34. migrations.RunPython(forward, backward),
  35. migrations.RemoveField(
  36. model_name='switch',
  37. name='size',
  38. ),
  39. ]