from django.core.management.base import BaseCommand from django.db import connections from establishment.management.commands.add_position import namedtuplefetchall from establishment.models import Employee from django.db.models import Q class Command(BaseCommand): help = 'Add employee from old db to new db.' def employees_sql(self): with connections['legacy'].cursor() as cursor: cursor.execute(''' select t.profile_id, t.name from ( select DISTINCT a.profile_id, trim(CONCAT(p.firstname, ' ', p.lastname) ) as name from affiliations as a join profiles p on p.id = a.profile_id ) t where t.name is not null ''') return namedtuplefetchall(cursor) def handle(self, *args, **options): objects = [] for e in self.employees_sql(): empl = Employee.objects.filter(old_id=e.profile_id) if empl.exists(): empl.name = e.name empl.save() self.stdout.write(self.style.WARNING(f'Update employee name objects.'))