Files
dashboard-cpsp/backend/apps/farms/migrations/0019_site_pusat_fields.py
T

53 lines
1.6 KiB
Python

# Move pusat registration fields onto sites; drop pusat_registrations.
from django.db import migrations, models
def forwards_copy_registrations(apps, schema_editor):
Site = apps.get_model("farms", "Site")
PusatRegistration = apps.get_model("farms", "PusatRegistration")
for row in PusatRegistration.objects.select_related("site").all():
site = row.site
site.pusat_code = row.code or ""
site.pusat_active_site_id = row.active_site_id
site.pusat_registered_at = row.registered_at
site.save(
update_fields=[
"pusat_code",
"pusat_active_site_id",
"pusat_registered_at",
"updated_at",
]
)
def noop_reverse(apps, schema_editor):
raise RuntimeError("Cannot reverse pusat fields onto sites.")
class Migration(migrations.Migration):
dependencies = [
("farms", "0018_site_id_numeric_suffix"),
]
operations = [
migrations.AddField(
model_name="site",
name="pusat_code",
field=models.SlugField(blank=True, default="", max_length=64),
),
migrations.AddField(
model_name="site",
name="pusat_active_site_id",
field=models.BigIntegerField(blank=True, null=True),
),
migrations.AddField(
model_name="site",
name="pusat_registered_at",
field=models.DateTimeField(blank=True, null=True),
),
migrations.RunPython(forwards_copy_registrations, noop_reverse),
migrations.DeleteModel(name="PusatRegistration"),
]