aboutsummaryrefslogtreecommitdiff
path: root/rpki/rpkidb/migrations/0003_turtle_data.py
diff options
context:
space:
mode:
Diffstat (limited to 'rpki/rpkidb/migrations/0003_turtle_data.py')
-rw-r--r--rpki/rpkidb/migrations/0003_turtle_data.py41
1 files changed, 41 insertions, 0 deletions
diff --git a/rpki/rpkidb/migrations/0003_turtle_data.py b/rpki/rpkidb/migrations/0003_turtle_data.py
new file mode 100644
index 00000000..dbf3b211
--- /dev/null
+++ b/rpki/rpkidb/migrations/0003_turtle_data.py
@@ -0,0 +1,41 @@
+# -*- 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(
+ parent_handle = parent.old_parent_handle,
+ 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_parent_handle = parent.turtle_ptr.parent_handle
+ 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)
+ ]