{"id":49140,"library":"redux-remigrate","title":"Redux Remigrate","description":"Redux Remigrate is a TypeScript-first migration layer for Redux Remember that automatically handles persisted state schema migrations. Version 6.0.6 (stable) ships with CLI tooling, automatic version tracking, circular migration detection, and Prettier integration. Unlike manual migration approaches, it uses auto-generated version types and detects store schema changes to enforce type-safe migrations. Requires redux >=5.0.0, redux-remember >=6.0.0, and typescript >=5.0.0 as peer dependencies. Release cadence is irregular with minor patches.","status":"active","version":"6.0.6","language":"javascript","source_language":"en","source_url":"https://github.com/zewish/redux-remember","tags":["javascript","redux","remember","migration","migrate","storage","rehydrate","rehydration","react","typescript"],"install":[{"cmd":"npm install redux-remigrate","lang":"bash","label":"npm"},{"cmd":"yarn add redux-remigrate","lang":"bash","label":"yarn"},{"cmd":"pnpm add redux-remigrate","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"peer dependency: Redux store integration","package":"redux","optional":false},{"reason":"peer dependency: persistence layer for Redux","package":"redux-remember","optional":false},{"reason":"peer dependency: required for type generation and migration logic","package":"typescript","optional":false}],"imports":[{"note":"ESM-only since v6; CommonJS require will not work.","wrong":"const { defineRemigrateConfig } = require('redux-remigrate')","symbol":"defineRemigrateConfig","correct":"import { defineRemigrateConfig } from 'redux-remigrate'"},{"note":"Underscore prefix is intentional and acts as a private symbol.","wrong":"import { remigrateVersion } from 'redux-remigrate'","symbol":"_remigrateVersion","correct":"import { _remigrateVersion } from 'redux-remigrate'"},{"note":"The migrate function is generated by the CLI, not exported from the package itself.","wrong":"import { migrate } from 'redux-remigrate'","symbol":"migrate","correct":"import { migrate } from './remigrate/index.ts'"}],"quickstart":{"code":"// 1. Install dependencies\n// npm install redux redux-remember redux-remigrate\n\n// 2. Create remigrate.config.ts\nexport default defineRemigrateConfig({\n  storagePath: './src/remigrate',\n  stateFilePath: './src/store.ts',\n  stateTypeExpression: 'PersistedState',\n});\n\n// 3. Initialize migrations directory\n// npx remigrate init\n\n// 4. Integrate with Redux Remember\nimport { configureStore } from '@reduxjs/toolkit';\nimport { rememberReducer, rememberEnhancer } from 'redux-remember';\nimport { _remigrateVersion } from 'redux-remigrate';\nimport { migrate } from './remigrate/index.ts';\n\nconst rememberedKeys = ['_remigrateVersion', 'myStateIsRemembered'] as const;\nconst rootReducer = rememberReducer({\n  _remigrateVersion,\n  myStateIsRemembered: (state = 'initial', action) => state,\n});\nconst store = configureStore({\n  reducer: rootReducer,\n  enhancers: (getDefaultEnhancers) => getDefaultEnhancers().concat(\n    rememberEnhancer(window.localStorage, rememberedKeys, { migrate })\n  ),\n});\n\nexport type RootState = ReturnType<typeof store.getState>;\nexport type PersistedState = Pick<RootState, typeof rememberedKeys[number]>;\n\n// 5. When your persisted state changes, run: npx remigrate create","lang":"typescript","description":"Shows the complete setup flow: install deps, create config, init migrations, integrate with Redux Remember, and generate migrations."},"warnings":[{"fix":"Switch to ESM imports or downgrade to v5.x if CJS is required.","message":"Package is ESM-only since v6.0.0. CommonJS require() will throw an error.","severity":"breaking","affected_versions":">=6.0.0"},{"fix":"Update redux-remember to v6 or later.","message":"Peer dependency redux-remember >=6.0.0 is required. Versions below 6 are incompatible.","severity":"breaking","affected_versions":">=6.0.0"},{"fix":"Import migrate from your local generated file (e.g., './remigrate/index.ts').","message":"The migrate function is generated by the CLI, not provided by the npm package. Attempting to import it from 'redux-remigrate' will fail.","severity":"breaking","affected_versions":"*"},{"fix":"Add '_remigrateVersion' to your rememberedKeys array.","message":"The _remigrateVersion reducer and its key must be included in rememberedKeys for migration tracking to work.","severity":"gotcha","affected_versions":"*"},{"fix":"Refer to the documentation for the latest CLI commands.","message":"The CLI command 'remigrate init' may change in future versions. Check docs for migration.","severity":"deprecated","affected_versions":">=6.0.0"}],"env_vars":null,"search_vec":"'5.0.0':62,69 '6.0.0':66 '6.0.6':23 'approach':41 'auto':45 'auto-gener':44 'automat':16,29 'cadenc':74 'chang':53 'circular':32 'cli':27 'depend':72 'detect':34,50 'enforc':55 'first':9 'generat':46 'handl':17 'integr':37 'irregular':76 'javascript':80 'layer':11 'manual':39 'migrat':10,21,33,40,59,83,84 'minor':78 'patch':79 'peer':71 'persist':18 'prettier':36 'react':88 'redux':1,3,13,61,64,81 'redux-rememb':63 'rehydr':86,87 'releas':73 'rememb':14,65,82 'remigr':2,4 'requir':60 'safe':58 'schema':20,52 'ship':25 'stabl':24 'state':19 'storag':85 'store':51 'tool':28 'track':31 'type':48,57 'type-saf':56 'typescript':8,68,89 'typescript-first':7 'unlik':38 'use':43 'version':22,30,47","created_at":"2026-06-07T17:00:15.815207+00:00","updated_at":"2026-06-07T17:00:15.815207+00:00","problems":[{"fix":"Install types: npm install --save-dev @types/redux-remigrate; if not available, ensure tsconfig includes 'node_modules/@types'.","cause":"Missing or outdated TypeScript types for the package.","error":"Cannot find module 'redux-remigrate' or its corresponding type declarations."},{"fix":"Change to import syntax: import { ... } from 'redux-remigrate'.","cause":"Using require() with ESM-only package.","error":"Error: Package 'redux-remigrate' is not ESM (it's CJS)."},{"fix":"Run npx remigrate init to generate the directory, then verify the path in your config.","cause":"Migrations directory not initialized or path incorrect.","error":"Module not found: Can't resolve './remigrate/index.ts'"},{"fix":"Upgrade redux to version 5 or later: npm install redux@5.","cause":"Peer dependency version mismatch.","error":"TypeError: redux-remigrate requires redux >=5.0.0. Found version 4.x"}],"ecosystem":"npm","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":null,"cli_version":null,"type":"library","homepage":"https://redux-remember.js.org/","github":"https://github.com/zewish/redux-remember","docs":null,"changelog":null,"pypi":null,"npm":"redux-remigrate","openapi_spec":null,"status_page":null,"smithery":null,"categories":["devops"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-06-07","next_check":"2026-09-05","install_tag":null}}