perf: 优化一波 migrations

This commit is contained in:
ibuler
2023-02-17 16:54:51 +08:00
committed by Jiangjie.Bai
parent 23238ca8e0
commit 98355ce468
16 changed files with 86 additions and 143 deletions

View File

@@ -1,5 +1,7 @@
# Generated by Django 3.2.14 on 2022-12-28 10:03
import private_storage.fields
import private_storage.storage.files
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
@@ -100,7 +102,7 @@ class Migration(migrations.Migration):
models.CharField(blank=True, db_index=True, default='', max_length=36, verbose_name='Organization')),
('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)),
('name', models.CharField(max_length=128, null=True, verbose_name='Name')),
('path', models.FileField(upload_to='playbooks/')),
('path', private_storage.fields.PrivateFileField(storage=private_storage.storage.files.PrivateFileSystemStorage(), upload_to='playbooks/')),
('comment',
models.CharField(blank=True, default='', max_length=1024, null=True, verbose_name='Comment')),
('creator',
@@ -109,6 +111,7 @@ class Migration(migrations.Migration):
],
options={
'abstract': False,
'ordering': ['date_created']
},
),
migrations.CreateModel(
@@ -242,4 +245,16 @@ class Migration(migrations.Migration):
},
bases=('ops.jobexecution',),
),
migrations.AlterUniqueTogether(
name='adhoc',
unique_together={('name', 'org_id', 'creator')},
),
migrations.AlterUniqueTogether(
name='job',
unique_together={('name', 'org_id', 'creator')},
),
migrations.AlterUniqueTogether(
name='playbook',
unique_together={('name', 'org_id', 'creator')},
),
]

View File

@@ -1,8 +1,26 @@
# Generated by Django 3.2.16 on 2022-12-30 08:08
import django.db.models
from django.db import migrations, models
def compatible(apps, schema_editor):
"""
兼容旧版本的数据
"""
model = apps.get_model("ops", "JobExecution")
for obj in model.objects.all():
if obj.job:
if obj.job.type == 'adhoc':
obj.material = "{}:{}".format(obj.job.module, obj.job.args)
if obj.job.type == 'playbook':
obj.material = "{}:{}:{}".format(obj.job.org.name, obj.job.creator.name, obj.job.playbook.name)
obj.job_type = obj.job.type
obj.save()
else:
obj.delete()
class Migration(migrations.Migration):
dependencies = [
@@ -20,4 +38,31 @@ class Migration(migrations.Migration):
name='name',
field=models.CharField(max_length=1024, verbose_name='Name'),
),
migrations.AddField(
model_name='playbook',
name='create_method',
field=models.CharField(choices=[('blank', 'Blank'), ('vcs', 'VCS')], default='blank', max_length=128, verbose_name='CreateMethod'),
),
migrations.AddField(
model_name='playbook',
name='vcs_url',
field=models.CharField(blank=True, default='', max_length=1024, null=True, verbose_name='VCS URL'),
),
migrations.AlterField(
model_name='jobexecution',
name='job',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='executions', to='ops.job'),
),
migrations.AddField(
model_name='jobexecution',
name='job_type',
field=models.CharField(choices=[('adhoc', 'Adhoc'), ('playbook', 'Playbook')], default='adhoc',
max_length=128, verbose_name='Material Type'),
),
migrations.AddField(
model_name='jobexecution',
name='material',
field=models.CharField(blank=True, default='', max_length=1024, null=True, verbose_name='Material'),
),
migrations.RunPython(compatible),
]

View File

@@ -1,23 +0,0 @@
# Generated by Django 3.2.14 on 2023-01-17 03:30
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('ops', '0024_alter_celerytask_date_last_publish'),
]
operations = [
migrations.AddField(
model_name='playbook',
name='create_method',
field=models.CharField(choices=[('blank', 'Blank'), ('vcs', 'VCS')], default='blank', max_length=128, verbose_name='CreateMethod'),
),
migrations.AddField(
model_name='playbook',
name='vcs_url',
field=models.CharField(blank=True, default='', max_length=1024, null=True, verbose_name='VCS URL'),
),
]

View File

@@ -1,19 +0,0 @@
# Generated by Django 3.2.14 on 2023-02-03 08:40
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('ops', '0025_auto_20230117_1130'),
]
operations = [
migrations.AlterField(
model_name='jobexecution',
name='job',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='executions', to='ops.job'),
),
]

View File

@@ -1,41 +0,0 @@
# Generated by Django 3.2.16 on 2023-02-06 11:27
from django.db import migrations, models
def compatible(apps, schema_editor):
"""
兼容旧版本的数据
"""
model = apps.get_model("ops", "JobExecution")
for obj in model.objects.all():
if obj.job:
if obj.job.type == 'adhoc':
obj.material = "{}:{}".format(obj.job.module, obj.job.args)
if obj.job.type == 'playbook':
obj.material = "{}:{}:{}".format(obj.job.org.name, obj.job.creator.name, obj.job.playbook.name)
obj.job_type = obj.job.type
obj.save()
else:
obj.delete()
class Migration(migrations.Migration):
dependencies = [
('ops', '0026_alter_jobexecution_job'),
]
operations = [
migrations.AddField(
model_name='jobexecution',
name='job_type',
field=models.CharField(choices=[('adhoc', 'Adhoc'), ('playbook', 'Playbook')], default='adhoc',
max_length=128, verbose_name='Material Type'),
),
migrations.AddField(
model_name='jobexecution',
name='material',
field=models.CharField(blank=True, default='', max_length=1024, null=True, verbose_name='Material'),
),
migrations.RunPython(compatible),
]

View File

@@ -1,31 +0,0 @@
# Generated by Django 3.2.16 on 2023-02-13 07:03
from django.conf import settings
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
('ops', '0027_auto_20230206_1927'),
]
operations = [
migrations.AlterModelOptions(
name='playbook',
options={'ordering': ['date_created']},
),
migrations.AlterUniqueTogether(
name='adhoc',
unique_together={('name', 'org_id', 'creator')},
),
migrations.AlterUniqueTogether(
name='job',
unique_together={('name', 'org_id', 'creator')},
),
migrations.AlterUniqueTogether(
name='playbook',
unique_together={('name', 'org_id', 'creator')},
),
]