Skip to content

Commit 6c2c5cd

Browse files
committed
Reorganize migrations module into domain-driven structure
Separates data and schema migrations into distinct modules for better organization and maintainability. Moves built-in migrations to appropriate builtin directories. Maintains full backward compatibility for all imports and CLI commands. Fixes test field naming to eliminate Pydantic warnings.
1 parent 104670b commit 6c2c5cd

18 files changed

+142
-1919
lines changed

aredis_om/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from .async_redis import redis # isort:skip
22
from .checks import has_redis_json, has_redisearch
33
from .connections import get_redis_connection
4-
from .model.migrations.migrator import MigrationError, Migrator
4+
from .model.migrations.schema.legacy_migrator import MigrationError, Migrator
55
from .model.model import (
66
EmbeddedJsonModel,
77
Field,

aredis_om/model/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from .migrations.migrator import MigrationError, Migrator
1+
from .migrations.schema.legacy_migrator import MigrationError, Migrator
22
from .model import (
33
EmbeddedJsonModel,
44
Field,

aredis_om/model/cli/legacy_migrate.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import click
77

88
from ...settings import get_root_migrations_dir
9-
from ..migrations.migrator import Migrator
9+
from ..migrations.schema.legacy_migrator import Migrator
1010

1111

1212
def run_async(coro):

aredis_om/model/cli/migrate.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
from redis.exceptions import TimeoutError as RedisTimeoutError
88

99
from ...settings import get_root_migrations_dir
10-
from ..migrations.schema_migrator import SchemaMigrator
10+
from ..migrations.schema import SchemaMigrator
1111

1212

1313
def run_async(coro):

aredis_om/model/cli/migrate_data.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@
1212
from redis.exceptions import ConnectionError as RedisConnectionError
1313
from redis.exceptions import TimeoutError as RedisTimeoutError
1414

15-
from ..migrations.data_migrator import DataMigrationError, DataMigrator
16-
from ..migrations.datetime_migration import ConversionFailureMode
15+
from ..migrations.data import DataMigrationError, DataMigrator
16+
from ..migrations.data.builtin.datetime_migration import ConversionFailureMode
1717

1818

1919
def run_async(coro):
@@ -489,7 +489,7 @@ def progress(migrations_dir: str, module: str, verbose: bool):
489489
import os
490490

491491
from ...settings import get_root_migrations_dir
492-
from ..migrations.datetime_migration import MigrationState
492+
from ..migrations.data.builtin.datetime_migration import MigrationState
493493

494494
resolved_dir = migrations_dir or os.path.join(
495495
get_root_migrations_dir(), "data-migrations"
@@ -546,7 +546,7 @@ def clear_progress(migrations_dir: str, module: str, yes: bool):
546546
import os
547547

548548
from ...settings import get_root_migrations_dir
549-
from ..migrations.datetime_migration import MigrationState
549+
from ..migrations.data.builtin.datetime_migration import MigrationState
550550

551551
resolved_dir = migrations_dir or os.path.join(
552552
get_root_migrations_dir(), "data-migrations"
@@ -588,7 +588,7 @@ def check_schema(migrations_dir: str, module: str):
588588
import os
589589

590590
from ...settings import get_root_migrations_dir
591-
from ..migrations.datetime_migration import DatetimeFieldDetector
591+
from ..migrations.data.builtin.datetime_migration import DatetimeFieldDetector
592592

593593
resolved_dir = migrations_dir or os.path.join(
594594
get_root_migrations_dir(), "data-migrations"
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
"""
2+
Migration system for Redis OM.
3+
4+
This module provides both data and schema migration capabilities for Redis OM
5+
Python applications. The migration system is organized into domain-specific
6+
submodules for better organization and maintainability.
7+
"""
8+
9+
# Import from new locations for backward compatibility
10+
from .data import BaseMigration, DataMigrationError, DataMigrator
11+
from .schema import (
12+
BaseSchemaMigration,
13+
SchemaMigrationError,
14+
SchemaMigrator,
15+
Migrator,
16+
MigrationError,
17+
MigrationAction
18+
)
19+
20+
# Maintain backward compatibility by exposing the same API
21+
__all__ = [
22+
# Data migration classes
23+
"BaseMigration",
24+
"DataMigrationError",
25+
"DataMigrator",
26+
27+
# Schema migration classes
28+
"BaseSchemaMigration",
29+
"SchemaMigrationError",
30+
"SchemaMigrator",
31+
32+
# Legacy classes (for backward compatibility)
33+
"Migrator",
34+
"MigrationError",
35+
"MigrationAction",
36+
]

0 commit comments

Comments
 (0)