mirror of https://gitlab.federez.net/re2o/re2o
1 changed files with 31 additions and 0 deletions
@ -0,0 +1,31 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
from __future__ import unicode_literals |
||||
|
|
||||
|
from django.db import migrations |
||||
|
from django.core.exceptions import ValidationError |
||||
|
|
||||
|
def fix_duplicate(apps, schema_editor): |
||||
|
db_alias = schema_editor.connection.alias |
||||
|
domain = apps.get_model("machines", "Domain") |
||||
|
machines_to_fix = list(filter(lambda m : not m.name.islower(), domain.objects.using(db_alias).all())) |
||||
|
for machine in machines_to_fix: |
||||
|
try: |
||||
|
machine.name = machine.name.lower() |
||||
|
machine.validate_unique() |
||||
|
machine.clean() |
||||
|
except ValidationError: |
||||
|
machine.name = machine.name.lower() + str(machine.interface_parent.id) |
||||
|
machine.clean() |
||||
|
machine.save() |
||||
|
|
||||
|
def unfix_duplicate(apps, schema_editor): |
||||
|
return |
||||
|
|
||||
|
|
||||
|
class Migration(migrations.Migration): |
||||
|
|
||||
|
dependencies = [("machines", "0106_auto_20191120_0159")] |
||||
|
|
||||
|
operations = [ |
||||
|
migrations.RunPython(fix_duplicate, unfix_duplicate), |
||||
|
] |
||||
Loading…
Reference in new issue