import stripe from django.conf import settings from django.core.management.base import BaseCommand from main import models class Command(BaseCommand): help = "Check Stripe data is in sync with database." def handle(self, *args, **options): stripe.api_key = settings.STRIPE_API_KEY total_count = 0 last = None while True: if last: subscription_list = stripe.Subscription.list( limit=100, starting_after=last.id ) else: subscription_list = stripe.Subscription.list(limit=100) total_count += len(subscription_list) print(f"Current total: {total_count}") for subscription in subscription_list: if not models.User.objects.filter( stripe_customer_id=subscription.customer ).exists(): self.stdout.write( self.style.NOTICE( "Customer not found in mataroa " f"database: {subscription.customer}" ) ) if not subscription_list.has_more: break last = list(reversed(subscription_list))[0]