Source code for ferrosoft.apps.ferrobase.management.commands.dumpdata_tenant

from django.core import management
from django.core.management import BaseCommand

from ferrosoft.apps.ferrobase.models import Tenant


[docs] class Command(BaseCommand): """Management command that dumps fixture data from a tenant database. Thin wrapper around Django's ``dumpdata`` that activates the specified tenant database connection before delegating to the built-in command. The ``--tenant`` argument is required. """
[docs] def add_arguments(self, parser): parser.add_argument("label", nargs="+", type=str) parser.add_argument( "--tenant", help="Tenant name", type=str, )
[docs] def handle(self, *args, **options): tenant_name = options["tenant"] if not tenant_name: print("--tenant required") return tenant = Tenant.objects.filter(name=tenant_name).first() if not tenant: self.stderr.write("Tenant not found: %s" % tenant_name) return tenant.activate_connection() management.call_command( "dumpdata", "--indent", "2", options["label"], database=tenant.database_name, )