Implement include migration name options

This commit is contained in:
David-Wobrock authored and David Wobrock committed 2021-01-31 17:44:58 +01:00
1 parent 1eccbbfc07
commit 137089573c
4 files changed
+47

No files matched your search

@@ -47,6 +47,18 @@ class Command(BaseCommand):
nargs="*",
help="ignore migrations with exactly one of these names",
)
parser.add_argument(
"--include-name-contains",
type=str,
nargs="?",
help="only consider migrations containing this name",
)
parser.add_argument(
"--include-name",
type=str,
nargs="*",
help="only consider migrations with exactly one of these names",
)
parser.add_argument(
"--project-root-path", type=str, nargs="?", help="django project root path"
)
@@ -126,6 +138,12 @@ class Command(BaseCommand):
ignore_name = options["ignore_name"] or config_parser.get(
CONFIG_NAME, "ignore_name", fallback=None
)
include_name_contains = options["include_name_contains"] or config_parser.get(
CONFIG_NAME, "include_name_contains", fallback=None
)
include_name = options["include_name"] or config_parser.get(
CONFIG_NAME, "include_name", fallback=None
)
include_apps = options["include_apps"] or config_parser.get(
CONFIG_NAME, "include_apps", fallback=None
)
@@ -163,6 +181,8 @@ class Command(BaseCommand):
settings_path,
ignore_name_contains=ignore_name_contains,
ignore_name=ignore_name,
include_name_contains=include_name_contains,
include_name=include_name,
include_apps=include_apps,
exclude_apps=exclude_apps,
database=database,
@@ -45,6 +45,8 @@ class MigrationLinter(object):
path=None,
ignore_name_contains=None,
ignore_name=None,
include_name_contains=None,
include_name=None,
include_apps=None,
exclude_apps=None,
database=DEFAULT_DB_ALIAS,
@@ -60,6 +62,8 @@ class MigrationLinter(object):
self.django_path = path
self.ignore_name_contains = ignore_name_contains
self.ignore_name = ignore_name or tuple()
self.include_name_contains = include_name_contains
self.include_name = include_name or tuple()
self.include_apps = include_apps
self.exclude_apps = exclude_apps
self.exclude_migration_tests = exclude_migration_tests or []
@@ -371,7 +375,12 @@ class MigrationLinter(object):
self.ignore_name_contains
and self.ignore_name_contains in migration_name
)
or (
self.include_name_contains
and self.include_name_contains not in migration_name
)
or (migration_name in self.ignore_name)
or (self.include_name and migration_name not in self.include_name)
or (
self.only_applied_migrations
and (app_label, migration_name)