diff --git a/apps/establishment/management/commands/upd_transportation.py b/apps/establishment/management/commands/upd_transportation.py new file mode 100644 index 00000000..1360d3b4 --- /dev/null +++ b/apps/establishment/management/commands/upd_transportation.py @@ -0,0 +1,29 @@ +from django.core.management.base import BaseCommand + +from establishment.models import Establishment +from transfer.models import Establishments as OldEst + +class Command(BaseCommand): + help = 'Update transportation column in establishment' + + def handle(self, *args, **kwargs): + count = 0 + raw_qs = OldEst.objects.raw( + ''' + select + e.id, + l.transportation + from establishments e + join locations l on l.id = e.location_id + where trim(l.transportation) is not null + and length(trim(l.transportation)) >1; + ''' + ) + queryset = [vars(query) for query in raw_qs] + for obj in queryset: + establishment = Establishment.objects.filter(old_id=obj['id']).first() + if establishment: + establishment.transportation = obj['transportation'] + count += 1 + establishment.save() + self.stdout.write(self.style.WARNING(f'Updated {count} objects.')) \ No newline at end of file