Skip to content

Commit a3d534b

Browse files
committed
feat(migrate): add index migration CLI and core engine
- Add rvl migrate subcommand (helper, list, plan, apply, validate) - Implement MigrationPlanner for schema diff classification - Implement MigrationExecutor with drop_recreate mode - Support vector quantization (float32 <-> float16) during migration - Add MigrationValidator for post-migration validation - Show error messages prominently on migration failure - Add migration temp files to .gitignore
1 parent 8ab9d71 commit a3d534b

10 files changed

Lines changed: 1593 additions & 5 deletions

File tree

.gitignore

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -234,3 +234,11 @@ tests/data
234234

235235
# Local working directory (personal scripts, docs, tools)
236236
local/
237+
238+
# Local notebooks (kept for development, not committed)
239+
docs/user_guide/13_index_migrations.ipynb
240+
241+
# Migration temp files (generated by rvl migrate commands)
242+
migration_plan.yaml
243+
migration_report.yaml
244+
schema_patch.yaml

redisvl/cli/main.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
import sys
33

44
from redisvl.cli.index import Index
5+
from redisvl.cli.migrate import Migrate
56
from redisvl.cli.stats import Stats
67
from redisvl.cli.version import Version
78
from redisvl.utils.log import get_logger
@@ -14,6 +15,7 @@ def _usage():
1415
"rvl <command> [<args>]\n",
1516
"Commands:",
1617
"\tindex Index manipulation (create, delete, etc.)",
18+
"\tmigrate Index migration planning and execution",
1719
"\tversion Obtain the version of RedisVL",
1820
"\tstats Obtain statistics about an index",
1921
]
@@ -49,3 +51,7 @@ def version(self):
4951
def stats(self):
5052
Stats()
5153
exit(0)
54+
55+
def migrate(self):
56+
Migrate()
57+
exit(0)

0 commit comments

Comments
 (0)