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, EstablishmentEmployee from django.utils import timezone from django.db.models import Q from tqdm import tqdm 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 tqdm(self.employees_sql()): empl = Employee.objects.filter(old_id=e.profile_id).update(name=e.name) EstablishmentEmployee.objects.filter(from_date__isnull=True, old_id__isnull=False)\ .update(from_date=timezone.now()-timezone.timedelta(days=1)) self.stdout.write(self.style.WARNING(f'Update employee name objects.'))