aboutsummaryrefslogtreecommitdiff
path: root/rpki/rpkidb/migrations/0003_turtle_data.py
blob: 90bc8854729b61196671475d2e1fac5bae0d9de9 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# -*- coding: utf-8 -*-
from __future__ import unicode_literals

from django.db import migrations, models


def turtle_forward(apps, schema_editor):
    Turtle = apps.get_model("rpkidb", "Turtle")
    Parent = apps.get_model("rpkidb", "Parent")
    db_alias = schema_editor.connection.alias
    for parent in Parent.objects.using(db_alias).all():
        turtle = Turtle.objects.using(db_alias).create(
            tenant        = parent.old_tenant,
            repository    = parent.old_repository)
        parent.turtle_ptr = turtle
        parent.save()


def turtle_reverse(apps, schema_editor):
    Turtle = apps.get_model("rpkidb", "Turtle")
    Parent = apps.get_model("rpkidb", "Parent")
    db_alias = schema_editor.connection.alias
    for parent in Parent.objects.using(db_alias).all():
        parent.old_tenant        = parent.turtle_ptr.tenant
        parent.old_repository    = parent.turtle_ptr.repository
        parent.turtle_ptr        = None
        parent.save()
    Turtle.objects.using(db_alias).all().delete()


class Migration(migrations.Migration):

    dependencies = [
        ('rpkidb', '0002_add_turtle'),
    ]

    operations = [
        migrations.RunPython(turtle_forward, turtle_reverse)
    ]