diff --git a/README.rst b/README.rst index 83122373..cb3b37e5 100644 --- a/README.rst +++ b/README.rst @@ -43,7 +43,7 @@ Add the migration linter your ``INSTALLED_APPS``: ] -``python manage.py lintmigrations [GIT_COMMIT_ID] [--ignore-name-contains IGNORE_NAME_CONTAINS] [--include-apps INCLUDE_APPS [INCLUDE_APPS ...] | --exclude-apps EXCLUDE_APPS [EXCLUDE_APPS ...]]`` +``python manage.py lintmigrations [GIT_COMMIT_ID] [--ignore-name-contains IGNORE_NAME_CONTAINS] [--include-apps INCLUDE_APPS [INCLUDE_APPS ...] | --exclude-apps EXCLUDE_APPS [EXCLUDE_APPS ...]] [--project-root-path DJANGO_PROJECT_FOLDER]`` ================================================== =========================================================================================================================== Parameter Description @@ -59,6 +59,7 @@ Add the migration linter your ``INSTALLED_APPS``: ``--no-cache`` Don't use a cache. ``--applied-migrations`` Only lint migrations that are applied to the selected database. Other migrations are ignored. ``--unapplied-migrations`` Only lint migrations that are not yet applied to the selected database. Other migrations are ignored. +``--project-root-path DJANGO_PROJECT_FOLDER`` An absolute or relative path to the django project. ================================================== =========================================================================================================================== Examples diff --git a/django_migration_linter/management/commands/lintmigrations.py b/django_migration_linter/management/commands/lintmigrations.py index c64b5714..2263d9d3 100644 --- a/django_migration_linter/management/commands/lintmigrations.py +++ b/django_migration_linter/management/commands/lintmigrations.py @@ -46,6 +46,9 @@ def add_arguments(self, parser): "Defaults to default" ), ) + parser.add_argument( + "--project-root-path", type=str, nargs="?", help="django project root path" + ) cache_group = parser.add_mutually_exclusive_group(required=False) cache_group.add_argument( @@ -86,9 +89,12 @@ def add_arguments(self, parser): ) def handle(self, *args, **options): - settings_path = os.path.dirname( - import_module(os.getenv("DJANGO_SETTINGS_MODULE")).__file__ - ) + if options["project_root_path"]: + settings_path = options["project_root_path"] + else: + settings_path = os.path.dirname( + import_module(os.getenv("DJANGO_SETTINGS_MODULE")).__file__ + ) if options["verbosity"] > 1: logging.basicConfig(format="%(message)s", level=logging.DEBUG)