from django.core.management.base import BaseCommand from django.db import connections from establishment.management.commands.add_position import namedtuplefetchall from main.models import SiteSettings from location.models import Country from tqdm import tqdm class Command(BaseCommand): help = '''Add add site settings from old db to new db. Run after country migrate!!!''' def site_sql(self): with connections['legacy'].cursor() as cursor: cursor.execute(''' select distinct id, country_code_2 as code, pinterest_page_url, twitter_page_url, facebook_page_url, contact_email, config, released, instagram_page_url, ad_config from sites as s ''') return namedtuplefetchall(cursor) def add_site_settings(self): objects=[] for s in tqdm(self.site_sql(), desc='Add site settings'): country = Country.objects.filter(code=s.code).first() sites = SiteSettings.objects.filter(subdomain=s.code) if not sites.exists(): objects.append( SiteSettings( subdomain=s.code, country=country, pinterest_page_url=s.pinterest_page_url, twitter_page_url=s.twitter_page_url, facebook_page_url=s.facebook_page_url, instagram_page_url=s.instagram_page_url, contact_email=s.contact_email, config=s.config, ad_config=s.ad_config, old_id=s.id ) ) SiteSettings.objects.bulk_create(objects) self.stdout.write(self.style.WARNING(f'Add or get tag category objects.')) def handle(self, *args, **kwargs): self.add_site_settings()