Migrace | reorganizace migraci
Zatím neověřeně funkční reorganizace migrací, která odstraňuje situaci, kdy existovaly Node, ale neexistovalo django-polymorphic. Opravuje problém, kdy zmigrované problémy nemají jména (a asi i nic dalšího), možná přináší jiné problémy, nutné ověřit.
This commit is contained in:
parent
e5ab448700
commit
b4e0bf7348
13 changed files with 119 additions and 67 deletions
|
@ -2,9 +2,10 @@
|
|||
# Generated by Django 1.11.20 on 2019-05-17 17:44
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations
|
||||
from django.db import migrations, models
|
||||
|
||||
from django.db.models import Q
|
||||
import django.db.models.deletion
|
||||
|
||||
def poskladej_strom(apps, rodic, *texty):
|
||||
Text = apps.get_model('seminar', 'Text')
|
||||
|
@ -31,6 +32,13 @@ def poskladej_strom(apps, rodic, *texty):
|
|||
tn.succ = textnode
|
||||
tn.save()
|
||||
tn = tn.succ
|
||||
def problem_to_polymorphic_Problem(apps,schema_editor):
|
||||
Problem = apps.get_model('seminar', 'Problem')
|
||||
ContentType = apps.get_model('contenttypes', 'ContentType')
|
||||
|
||||
new_ct = ContentType.objects.get_for_model(Problem)
|
||||
Problem.objects.filter(polymorphic_ctype__isnull=True).update(polymorphic_ctype=new_ct)
|
||||
|
||||
|
||||
def uloha_to_Uloha(apps,schema_editor):
|
||||
Problem = apps.get_model('seminar', 'Problem')
|
||||
|
@ -41,23 +49,24 @@ def uloha_to_Uloha(apps,schema_editor):
|
|||
TextNode = apps.get_model('seminar', 'TextNode')
|
||||
|
||||
ulohy = Problem.objects.filter(typ = 'uloha')
|
||||
for uold in ulohy:
|
||||
for uold in ulohy[1:]:
|
||||
unew = Uloha.objects.create(
|
||||
problem_ptr = uold,
|
||||
# Zakomentované fieldy by se už měly nacházet v příslušném problému
|
||||
#nazev = uold.nazev,
|
||||
#stav = uold.stav,
|
||||
#zamereni = uold.zamereni,
|
||||
#poznamka = uold.poznamka,
|
||||
#autor = uold.autor,
|
||||
#kod = uold.kod,
|
||||
nazev = uold.nazev,
|
||||
stav = uold.stav,
|
||||
zamereni = uold.zamereni,
|
||||
poznamka = uold.poznamka,
|
||||
autor = uold.autor,
|
||||
kod = uold.kod,
|
||||
cislo_zadani = uold.cislo_zadani_old,
|
||||
cislo_reseni = uold.cislo_reseni_old,
|
||||
max_body = uold.body,
|
||||
#vytvoreno = uold.vytvoreno,
|
||||
vytvoreno = uold.vytvoreno,
|
||||
)
|
||||
# unew.opravovatele.add(*uold.opravovatele.all())
|
||||
unew.save()
|
||||
unew.opravovatele.add(*uold.opravovatele.all())
|
||||
|
||||
return
|
||||
|
||||
# Nody:
|
||||
zadani_node = UlohaZadaniNode.objects.create(uloha = unew)
|
||||
|
@ -94,7 +103,7 @@ def clanek_to_Clanek(apps,schema_editor):
|
|||
raise ValueError("Různá čísla zadání a řešení u článku! (Článek: {})".format(cl.nazev))
|
||||
|
||||
clnew = Clanek.objects.create(
|
||||
problem_ptr = cl,
|
||||
problem_ptr_id = cl.id,
|
||||
# Problém by nemělo být potřeba upravovat
|
||||
cislo = cislo,
|
||||
# Body ignorujeme, protože už jsou v hodnocení
|
||||
|
@ -149,13 +158,13 @@ def tema_to_Tema(apps, schema_editor):
|
|||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('seminar', '0057_reseni_to_reseni_hodnoceni'),
|
||||
('seminar', '0087_fix_polymorphism'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
# ashes to Ashes, dust to Dust....
|
||||
migrations.RunPython(uloha_to_Uloha, migrations.RunPython.noop),
|
||||
migrations.RunPython(tema_to_Tema, migrations.RunPython.noop),
|
||||
migrations.RunPython(clanek_to_Clanek, migrations.RunPython.noop),
|
||||
migrations.RunPython(konfery_rucne, migrations.RunPython.noop),
|
||||
# migrations.RunPython(tema_to_Tema, migrations.RunPython.noop),
|
||||
# migrations.RunPython(clanek_to_Clanek, migrations.RunPython.noop),
|
||||
# migrations.RunPython(konfery_rucne, migrations.RunPython.noop),
|
||||
]
|
||||
|
|
|
@ -18,7 +18,7 @@ class Migration(migrations.Migration):
|
|||
|
||||
dependencies = [
|
||||
('contenttypes', '0002_remove_content_type_name'),
|
||||
('seminar', '0064_auto_20190610_2358'),
|
||||
('seminar', '0057_reseni_to_reseni_hodnoceni'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
|
|
31
seminar/migrations/0066b_orgtextnode.py
Normal file
31
seminar/migrations/0066b_orgtextnode.py
Normal file
|
@ -0,0 +1,31 @@
|
|||
|
||||
# Generated by Django 2.2.4 on 2019-08-13 19:45
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('contenttypes', '0002_remove_content_type_name'),
|
||||
('seminar', '0066_problem_polymorphic_ctype'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='OrgTextNode',
|
||||
fields=[
|
||||
('treenode_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='seminar.TreeNode')),
|
||||
('org_verejny', models.BooleanField(default=True, help_text='Pokud ano, bude org pod článkem podepsaný', verbose_name='Org je veřejný?')),
|
||||
('organizator', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to='seminar.Organizator', verbose_name='Organizátor')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'Organizátorský článek (Node)',
|
||||
'verbose_name_plural': 'Organizátorské články (Node)',
|
||||
'db_table': 'seminar_nodes_orgtextnode',
|
||||
},
|
||||
bases=('seminar.treenode',),
|
||||
),
|
||||
|
||||
]
|
29
seminar/migrations/0066c_reseninode.py
Normal file
29
seminar/migrations/0066c_reseninode.py
Normal file
|
@ -0,0 +1,29 @@
|
|||
# Generated by Django 2.2.4 on 2019-08-13 19:45
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('contenttypes', '0002_remove_content_type_name'),
|
||||
('seminar', '0066b_orgtextnode'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='ReseniNode',
|
||||
fields=[
|
||||
('treenode_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='seminar.TreeNode')),
|
||||
('reseni', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='seminar.Reseni', verbose_name='reseni')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'Otištěné řešení (Node)',
|
||||
'verbose_name_plural': 'Otištěná řešení (Node)',
|
||||
'db_table': 'seminar_nodes_otistene_reseni',
|
||||
},
|
||||
bases=('seminar.treenode',),
|
||||
),
|
||||
|
||||
]
|
|
@ -6,7 +6,7 @@ from django.db import migrations, models
|
|||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('seminar', '0066_problem_polymorphic_ctype'),
|
||||
('seminar', '0064_auto_20190610_2358'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
|
|
|
@ -7,7 +7,7 @@ import django.db.models.deletion
|
|||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('seminar', '0076_auto_20200228_2013'),
|
||||
('seminar', '0066c_reseninode'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
|
|
|
@ -1,27 +0,0 @@
|
|||
# Generated by Django 2.2.9 on 2020-03-18 23:59
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('seminar', '0077_auto_20200318_2146'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='OtisteneReseniNode',
|
||||
fields=[
|
||||
('treenode_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='seminar.TreeNode')),
|
||||
('reseni', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='seminar.Reseni', verbose_name='reseni')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'Otištěné řešení (Node)',
|
||||
'verbose_name_plural': 'Otištěná řešení (Node)',
|
||||
'db_table': 'seminar_nodes_otistene_reseni',
|
||||
},
|
||||
bases=('seminar.treenode',),
|
||||
),
|
||||
]
|
|
@ -6,7 +6,7 @@ from django.db import migrations, models
|
|||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('seminar', '0078_otistenereseninode'),
|
||||
('seminar', '0076_auto_20200228_2013'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
|
|
|
@ -31,28 +31,10 @@ class Migration(migrations.Migration):
|
|||
model_name='konfera',
|
||||
name='ucastnici',
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='OrgTextNode',
|
||||
fields=[
|
||||
('treenode_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='seminar.TreeNode')),
|
||||
('org_verejny', models.BooleanField(default=True, help_text='Pokud ano, bude org pod článkem podepsaný', verbose_name='Org je veřejný?')),
|
||||
('organizator', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to='seminar.Organizator', verbose_name='Organizátor')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'Organizátorský článek (Node)',
|
||||
'verbose_name_plural': 'Organizátorské články (Node)',
|
||||
'db_table': 'seminar_nodes_orgtextnode',
|
||||
},
|
||||
bases=('seminar.treenode',),
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='konfera',
|
||||
name='id',
|
||||
),
|
||||
migrations.RenameModel(
|
||||
old_name='OtisteneReseniNode',
|
||||
new_name='ReseniNode',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='clanek',
|
||||
name='cislo',
|
||||
|
|
|
@ -41,7 +41,7 @@ def fix_problem(apps, schema_editor):
|
|||
|
||||
class Migration(migrations.Migration):
|
||||
dependencies = [
|
||||
('seminar', '0086_auto_20200819_0959'),
|
||||
('seminar', '0077_auto_20200318_2146'),
|
||||
]
|
||||
operations = [
|
||||
migrations.RunPython(fix_treenode, migrations.RunPython.noop),
|
||||
|
|
|
@ -27,7 +27,7 @@ def add_perms(apps, schema_editor):
|
|||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('seminar', '0087_fix_polymorphism'),
|
||||
('seminar', '0086_auto_20200819_0959'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
|
|
28
seminar/migrations/0093_auto_20210330_2105.py
Normal file
28
seminar/migrations/0093_auto_20210330_2105.py
Normal file
|
@ -0,0 +1,28 @@
|
|||
# Generated by Django 2.2.12 on 2021-03-30 19:05
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('seminar', '0092_auto_20210309_2049'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.DeleteModel(
|
||||
name='VysledkyCelkemKCislu',
|
||||
),
|
||||
migrations.DeleteModel(
|
||||
name='VysledkyKCislu',
|
||||
),
|
||||
migrations.DeleteModel(
|
||||
name='VysledkyKCisluOdjakziva',
|
||||
),
|
||||
migrations.DeleteModel(
|
||||
name='VysledkyKCisluZaRocnik',
|
||||
),
|
||||
migrations.DeleteModel(
|
||||
name='VysledkyZaCislo',
|
||||
),
|
||||
]
|
Loading…
Reference in a new issue