gault-millau/apps/account/management/commands/add_account.py
Виктор Гладких ba6d18d202 Fix account migration
2019-11-07 17:01:26 +03:00

38 lines
1.7 KiB
Python

from django.core.management.base import BaseCommand
from django.db import connections
from django.db.models import Q
from establishment.management.commands.add_position import namedtuplefetchall
from account.models import User
class Command(BaseCommand):
help = 'Add account from old db to new db'
def account_sql(self):
with connections['legacy'].cursor() as cursor:
cursor.execute('''
select a.email, a.id as account_id
from accounts as a
where a.email is not null
and a.email not in ('cyril@tomatic.net',
'cyril2@tomatic.net',
'd.sadykova@id-east.ru',
'd.sadykova@octopod.ru',
'n.yurchenko@id-east.ru'
)
and a.confirmed_at is not null
''')
return namedtuplefetchall(cursor)
def handle(self, *args, **kwargs):
objects = []
for a in self.account_sql():
count = User.objects.filter(Q(email=a.email) | Q(old_id=a.account_id)).count()
if count == 0:
objects.append(User(email=a.email,
unconfirmed_email=False,
email_confirmed=True,
old_id=a.account_id
))
User.objects.bulk_create(objects)
self.stdout.write(self.style.WARNING(f'Created accounts objects.'))