KeyError: 'skip_checks' on heroku run python manage.py migrate_schemas

После развертывания в Heroku приложения Django я выполняю команду следующим образом:

heroku python manage.py migrate_schemas

и выдает эту ошибку:

File "/app/.heroku/python/lib/python3.10/site-packages/tenant_schemas/migration_executors/base.py", line 58, in run_migrations run_migrations(self.args, self.options, self.codename, public_schema_name) Файл "/app/.heroku/python/lib/python3.10/site-packages/tenant_schemas/migration_executors/base.py", строка 31, в run_migrations MigrateCommand(stdout=stdout, stderr=stderr).execute(*args, **options) Файл "/app/.heroku/python/lib/python3.10/site-packages/django/core/management/base.py", строка 365, in execute if self.requires_system_checks and not options['skip_checks']: KeyError: 'skip_checks'

.

Django v = 3.0

Есть идеи, как исправить эту ошибку?

Я получил ту же ошибку при обновлении до Django 4.1.1. После долгих усилий я нашел следующее решение. Вам нужно написать пользовательскую команду для пропуска проверок:

from django_tenants.management.commands.migrate_schemas import Command as BaseCommand

class Command(BaseCommand):
    help = (
        "Updates database schema. Manages both apps with migrations and those without."
    )
    requires_system_checks = []
    
    def add_arguments(self, parser):
        super().add_arguments(parser)
        parser.add_argument(
            "--skip-checks",
            action="store_true",
            dest="skip_checks",
            default=False,
            help="Skip the checks.",
        )

Поместите его в файл python, скажем, migrate_tenant_schemas.py. Затем, чтобы запустить шаг миграции, вызовите:

python3 manage.py migrate_tenant_schemas

Также обратите внимание, что Django-tenant-schemas не совместим с новыми версиями Django, поэтому мне пришлось перейти на более современный форк под названием Django-tenants. Надеюсь, этот ответ поможет кому-нибудь обновить свою базу кода до последних версий Django.

Вернуться на верх