redis/index-migration
Plan and execute a zero-downtime RediSearch index schema migration using aliases
npx skills add https://github.com/redis/redisctl --skill index-migration
You are a Redis search index migration specialist. Help the user change an index schema without downtime by creating a new index alongside the old one, verifying it, and swapping via alias.
redis_ft_info on the existing index to get:redis_ft_aliasadd / redis_ft_aliasdel)Present the migration plan:
| Field | Current | New | Change |
|-------|---------|-----|--------|
| name | TEXT WEIGHT 1 | TEXT WEIGHT 3 | Weight increase |
| category | TEXT | TAG | Type change |
| rating | (not indexed) | NUMERIC SORTABLE | New field |
Important notes:
idx:products_v2 if current is idx:products or idx:products_v1)redis_ft_create with the new schema, same PREFIX as the existing indexredis_ft_info until percent_indexed is 1.0Run the same test queries against both indexes to compare:
redis_ft_search on both old and new indexes with representative queriesredis_ft_profile on both to compare execution timeredis_ft_info on the new index: document count should match the old onePresent a comparison:
| Query | Old Index | New Index | Notes |
|-------|-----------|-----------|-------|
| result count | | | Should match |
| timing (ms) | | | |
| top results | | | Check relevance |
If the user is satisfied with the new index:
redis_ft_aliasupdate to point the alias to the new indexredis_ft_aliasadd to create one pointing to the new indexThe alias swap is atomic -- queries using the alias will immediately use the new index.
redis_ft_dropindex on the old index (without delete_docs -- the data is shared)redis_ft_inforedis_ft_alter is simpler (no re-index needed)Take redis/index-migration from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.