File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -212,7 +212,15 @@ def normalize_target_schema_to_patch(
212212
213213 for index_key , target_value in target_dict ["index" ].items ():
214214 source_value = source_dict ["index" ].get (index_key )
215- if source_value != target_value :
215+ # Normalize single-element list prefixes for comparison so that
216+ # e.g. source ["docs"] and target "docs" are treated as equal.
217+ sv , tv = source_value , target_value
218+ if index_key == "prefix" :
219+ if isinstance (sv , list ) and len (sv ) == 1 :
220+ sv = sv [0 ]
221+ if isinstance (tv , list ) and len (tv ) == 1 :
222+ tv = tv [0 ]
223+ if sv != tv :
216224 changes ["index" ][index_key ] = target_value
217225
218226 return SchemaPatch .model_validate ({"version" : 1 , "changes" : changes })
Original file line number Diff line number Diff line change 77
88import yaml
99
10- from redisvl .utils .log import get_logger
11-
12- logger = get_logger (__name__ )
13-
1410from redisvl .index import SearchIndex
1511from redisvl .migration .models import (
1612 AOF_HSET_OVERHEAD_BYTES ,
2420)
2521from redisvl .redis .connection import RedisConnectionFactory
2622from redisvl .schema .schema import IndexSchema
23+ from redisvl .utils .log import get_logger
24+
25+ logger = get_logger (__name__ )
2726
2827
2928def list_indexes (
Original file line number Diff line number Diff line change @@ -61,14 +61,12 @@ def validate(
6161 if plan .rename_operations .change_prefix is not None :
6262 old_prefix = plan .source .keyspace .prefixes [0 ]
6363 new_prefix = plan .rename_operations .change_prefix
64- key_sep = plan .source .keyspace .key_separator
65- # Normalize prefixes: strip trailing separator for consistent slicing
66- old_base = old_prefix .rstrip (key_sep ) if old_prefix else ""
67- new_base = new_prefix .rstrip (key_sep ) if new_prefix else ""
64+ # Mirror executor logic exactly:
65+ # new_key = new_prefix + key[len(old_prefix):]
6866 keys_to_check = []
6967 for k in key_sample :
70- if old_base and k .startswith (old_base ):
71- keys_to_check .append (new_base + k [len (old_base ) :])
68+ if k .startswith (old_prefix ):
69+ keys_to_check .append (new_prefix + k [len (old_prefix ) :])
7270 else :
7371 keys_to_check .append (k )
7472 existing_count = target_index .client .exists (* keys_to_check )
You can’t perform that action at this time.
0 commit comments