server/python/django2/renkanmanager/migrations/0005_foreign_key_fields_datamigration.py
author durandn
Tue, 07 Jun 2016 10:44:41 +0200
changeset 611 f0f07e2b841f
parent 609 854a027c80ff
permissions -rw-r--r--
serverside: translation + timestamp handling + logging
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
609
854a027c80ff models refactoring to use ForeignKey fields + associated migrations
durandn
parents:
diff changeset
     1
# -*- coding: utf-8 -*-
854a027c80ff models refactoring to use ForeignKey fields + associated migrations
durandn
parents:
diff changeset
     2
# Generated by Django 1.9.1 on 2016-04-14 12:23
854a027c80ff models refactoring to use ForeignKey fields + associated migrations
durandn
parents:
diff changeset
     3
from __future__ import unicode_literals
854a027c80ff models refactoring to use ForeignKey fields + associated migrations
durandn
parents:
diff changeset
     4
854a027c80ff models refactoring to use ForeignKey fields + associated migrations
durandn
parents:
diff changeset
     5
from django.db import migrations
854a027c80ff models refactoring to use ForeignKey fields + associated migrations
durandn
parents:
diff changeset
     6
854a027c80ff models refactoring to use ForeignKey fields + associated migrations
durandn
parents:
diff changeset
     7
854a027c80ff models refactoring to use ForeignKey fields + associated migrations
durandn
parents:
diff changeset
     8
def populate_foreign_keys(apps, schema_editor):
854a027c80ff models refactoring to use ForeignKey fields + associated migrations
durandn
parents:
diff changeset
     9
    renkans = apps.get_model('renkanmanager', 'Renkan')
854a027c80ff models refactoring to use ForeignKey fields + associated migrations
durandn
parents:
diff changeset
    10
    revisions = apps.get_model('renkanmanager', 'Revision')
854a027c80ff models refactoring to use ForeignKey fields + associated migrations
durandn
parents:
diff changeset
    11
    workspaces = apps.get_model('renkanmanager', 'Workspace')
854a027c80ff models refactoring to use ForeignKey fields + associated migrations
durandn
parents:
diff changeset
    12
    for renkan in renkans.objects.all():
854a027c80ff models refactoring to use ForeignKey fields + associated migrations
durandn
parents:
diff changeset
    13
        current_revision_for_renkan = revisions.objects.get(revision_guid=renkan.current_revision_guid)
854a027c80ff models refactoring to use ForeignKey fields + associated migrations
durandn
parents:
diff changeset
    14
        renkan.current_revision = current_revision_for_renkan
854a027c80ff models refactoring to use ForeignKey fields + associated migrations
durandn
parents:
diff changeset
    15
        if renkan.source_revision_guid:
854a027c80ff models refactoring to use ForeignKey fields + associated migrations
durandn
parents:
diff changeset
    16
            current_source_for_renkan = revisions.objects.get(revision_guid=renkan.source_revision_guid)
854a027c80ff models refactoring to use ForeignKey fields + associated migrations
durandn
parents:
diff changeset
    17
            renkan.source_revision = current_source_for_renkan
854a027c80ff models refactoring to use ForeignKey fields + associated migrations
durandn
parents:
diff changeset
    18
        if renkan.workspace_guid:
854a027c80ff models refactoring to use ForeignKey fields + associated migrations
durandn
parents:
diff changeset
    19
            workspace_for_renkan = revisions.objects.get(revision_guid=renkan.workspace_guid)
854a027c80ff models refactoring to use ForeignKey fields + associated migrations
durandn
parents:
diff changeset
    20
            renkan.workspace = workspace_for_renkan
854a027c80ff models refactoring to use ForeignKey fields + associated migrations
durandn
parents:
diff changeset
    21
        renkan.save()
854a027c80ff models refactoring to use ForeignKey fields + associated migrations
durandn
parents:
diff changeset
    22
    for revision in revisions.objects.all():
854a027c80ff models refactoring to use ForeignKey fields + associated migrations
durandn
parents:
diff changeset
    23
        parent_renkan_for_revision = renkans.objects.get(renkan_guid=revision.parent_renkan_guid)
854a027c80ff models refactoring to use ForeignKey fields + associated migrations
durandn
parents:
diff changeset
    24
        revision.parent_renkan = parent_renkan_for_revision
854a027c80ff models refactoring to use ForeignKey fields + associated migrations
durandn
parents:
diff changeset
    25
        revision.save()
854a027c80ff models refactoring to use ForeignKey fields + associated migrations
durandn
parents:
diff changeset
    26
            
854a027c80ff models refactoring to use ForeignKey fields + associated migrations
durandn
parents:
diff changeset
    27
854a027c80ff models refactoring to use ForeignKey fields + associated migrations
durandn
parents:
diff changeset
    28
class Migration(migrations.Migration):
854a027c80ff models refactoring to use ForeignKey fields + associated migrations
durandn
parents:
diff changeset
    29
854a027c80ff models refactoring to use ForeignKey fields + associated migrations
durandn
parents:
diff changeset
    30
    dependencies = [
854a027c80ff models refactoring to use ForeignKey fields + associated migrations
durandn
parents:
diff changeset
    31
        ('renkanmanager', '0004_foreign_key_fields_initial'),
854a027c80ff models refactoring to use ForeignKey fields + associated migrations
durandn
parents:
diff changeset
    32
    ]
854a027c80ff models refactoring to use ForeignKey fields + associated migrations
durandn
parents:
diff changeset
    33
854a027c80ff models refactoring to use ForeignKey fields + associated migrations
durandn
parents:
diff changeset
    34
    operations = [
854a027c80ff models refactoring to use ForeignKey fields + associated migrations
durandn
parents:
diff changeset
    35
        migrations.RunPython(populate_foreign_keys)
854a027c80ff models refactoring to use ForeignKey fields + associated migrations
durandn
parents:
diff changeset
    36
    ]