[{"data":1,"prerenderedAt":1353},["ShallowReactive",2],{"content-query-veSl5RhJJf":3},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":9,"body":10,"_type":1347,"_id":1348,"_source":1349,"_file":1350,"_stem":1351,"_extension":1352},"\u002Fdocs\u002Ffeatures\u002Fmigrations","features",false,"","Migrations","Import and migrate data between systems",{"type":11,"children":12,"toc":1291},"root",[13,21,27,34,39,69,75,82,87,142,148,219,225,231,236,246,251,257,262,270,276,281,289,295,301,306,314,320,325,333,338,346,352,357,466,472,478,483,511,517,562,570,576,581,609,615,620,628,633,666,672,678,683,691,697,702,710,716,721,729,735,741,746,815,821,829,835,840,858,863,869,875,880,888,894,899,931,937,942,950,956,962,985,991,1014,1020,1043,1049,1072,1078,1084,1092,1098,1106,1112,1120,1126,1132,1155,1161,1184,1190,1213,1219,1242,1248,1285],{"type":14,"tag":15,"props":16,"children":18},"element","h1",{"id":17},"migrations",[19],{"type":20,"value":8},"text",{"type":14,"tag":22,"props":23,"children":24},"p",{},[25],{"type":20,"value":26},"Migrate data from your existing systems into CredVault safely and reliably.",{"type":14,"tag":28,"props":29,"children":31},"h2",{"id":30},"what-are-migrations",[32],{"type":20,"value":33},"What are Migrations?",{"type":14,"tag":22,"props":35,"children":36},{},[37],{"type":20,"value":38},"Migrations let you:",{"type":14,"tag":40,"props":41,"children":42},"ul",{},[43,49,54,59,64],{"type":14,"tag":44,"props":45,"children":46},"li",{},[47],{"type":20,"value":48},"Import data from other databases",{"type":14,"tag":44,"props":50,"children":51},{},[52],{"type":20,"value":53},"Transfer between CredVault instances",{"type":14,"tag":44,"props":55,"children":56},{},[57],{"type":20,"value":58},"One-time or continuous sync",{"type":14,"tag":44,"props":60,"children":61},{},[62],{"type":20,"value":63},"Test before production",{"type":14,"tag":44,"props":65,"children":66},{},[67],{"type":20,"value":68},"Rollback if needed",{"type":14,"tag":28,"props":70,"children":72},{"id":71},"getting-started",[73],{"type":20,"value":74},"Getting Started",{"type":14,"tag":76,"props":77,"children":79},"h3",{"id":78},"plan-your-migration",[80],{"type":20,"value":81},"Plan Your Migration",{"type":14,"tag":22,"props":83,"children":84},{},[85],{"type":20,"value":86},"Before starting:",{"type":14,"tag":88,"props":89,"children":90},"ol",{},[91,102,112,122,132],{"type":14,"tag":44,"props":92,"children":93},{},[94,100],{"type":14,"tag":95,"props":96,"children":97},"strong",{},[98],{"type":20,"value":99},"Identify source",{"type":20,"value":101}," - Where is your data now?",{"type":14,"tag":44,"props":103,"children":104},{},[105,110],{"type":14,"tag":95,"props":106,"children":107},{},[108],{"type":20,"value":109},"Choose destination",{"type":20,"value":111}," - Which CredVault database?",{"type":14,"tag":44,"props":113,"children":114},{},[115,120],{"type":14,"tag":95,"props":116,"children":117},{},[118],{"type":20,"value":119},"List data sources",{"type":20,"value":121}," - All tables\u002Fcollections to migrate",{"type":14,"tag":44,"props":123,"children":124},{},[125,130],{"type":14,"tag":95,"props":126,"children":127},{},[128],{"type":20,"value":129},"Plan schedule",{"type":20,"value":131}," - When to run?",{"type":14,"tag":44,"props":133,"children":134},{},[135,140],{"type":14,"tag":95,"props":136,"children":137},{},[138],{"type":20,"value":139},"Test first",{"type":20,"value":141}," - Use non-production environment",{"type":14,"tag":76,"props":143,"children":145},{"id":144},"create-migration",[146],{"type":20,"value":147},"Create Migration",{"type":14,"tag":88,"props":149,"children":150},{},[151,162,171,176,214],{"type":14,"tag":44,"props":152,"children":153},{},[154,156,160],{"type":20,"value":155},"Click ",{"type":14,"tag":95,"props":157,"children":158},{},[159],{"type":20,"value":8},{"type":20,"value":161}," in sidebar",{"type":14,"tag":44,"props":163,"children":164},{},[165,166],{"type":20,"value":155},{"type":14,"tag":95,"props":167,"children":168},{},[169],{"type":20,"value":170},"New Migration",{"type":14,"tag":44,"props":172,"children":173},{},[174],{"type":20,"value":175},"Name it: \"Postgres to CredVault Migration\"",{"type":14,"tag":44,"props":177,"children":178},{},[179,181],{"type":20,"value":180},"Choose type:\n",{"type":14,"tag":40,"props":182,"children":183},{},[184,194,204],{"type":14,"tag":44,"props":185,"children":186},{},[187,192],{"type":14,"tag":95,"props":188,"children":189},{},[190],{"type":20,"value":191},"One-time",{"type":20,"value":193}," - Copy data once",{"type":14,"tag":44,"props":195,"children":196},{},[197,202],{"type":14,"tag":95,"props":198,"children":199},{},[200],{"type":20,"value":201},"Continuous",{"type":20,"value":203}," - Keep syncing",{"type":14,"tag":44,"props":205,"children":206},{},[207,212],{"type":14,"tag":95,"props":208,"children":209},{},[210],{"type":20,"value":211},"Scheduled",{"type":20,"value":213}," - Run on schedule",{"type":14,"tag":44,"props":215,"children":216},{},[217],{"type":20,"value":218},"Next: Configure source",{"type":14,"tag":28,"props":220,"children":222},{"id":221},"configuring-source",[223],{"type":20,"value":224},"Configuring Source",{"type":14,"tag":76,"props":226,"children":228},{"id":227},"connection-details",[229],{"type":20,"value":230},"Connection Details",{"type":14,"tag":22,"props":232,"children":233},{},[234],{"type":20,"value":235},"Provide source database info:",{"type":14,"tag":237,"props":238,"children":240},"pre",{"code":239},"Connection Type: PostgreSQL\nHost: source-db.example.com\nPort: 5432\nDatabase: old_database\nUsername: migration_user\nPassword: [secure password]\n",[241],{"type":14,"tag":242,"props":243,"children":244},"code",{"__ignoreMap":7},[245],{"type":20,"value":239},{"type":14,"tag":22,"props":247,"children":248},{},[249],{"type":20,"value":250},"Test connection before proceeding.",{"type":14,"tag":76,"props":252,"children":254},{"id":253},"select-tables",[255],{"type":20,"value":256},"Select Tables",{"type":14,"tag":22,"props":258,"children":259},{},[260],{"type":20,"value":261},"Choose which tables to migrate:",{"type":14,"tag":237,"props":263,"children":265},{"code":264},"☑ customers (1.2M rows)\n☑ orders (5.3M rows)\n☑ products (25K rows)\n☐ internal_logs (skip)\n☐ archive_data_2020 (skip)\n",[266],{"type":14,"tag":242,"props":267,"children":268},{"__ignoreMap":7},[269],{"type":20,"value":264},{"type":14,"tag":76,"props":271,"children":273},{"id":272},"preview-data",[274],{"type":20,"value":275},"Preview Data",{"type":14,"tag":22,"props":277,"children":278},{},[279],{"type":20,"value":280},"See sample of what will be migrated:",{"type":14,"tag":237,"props":282,"children":284},{"code":283},"customers table:\ncustomer_id | name            | email\n------------|-----------------|-------------------\n1           | Alice Smith     | alice@example.com\n2           | Bob Johnson     | bob@example.com\n3           | Carol White     | carol@example.com\n... (showing 3 of 1,234,567 rows)\n",[285],{"type":14,"tag":242,"props":286,"children":287},{"__ignoreMap":7},[288],{"type":20,"value":283},{"type":14,"tag":28,"props":290,"children":292},{"id":291},"data-mapping",[293],{"type":20,"value":294},"Data Mapping",{"type":14,"tag":76,"props":296,"children":298},{"id":297},"column-mapping",[299],{"type":20,"value":300},"Column Mapping",{"type":14,"tag":22,"props":302,"children":303},{},[304],{"type":20,"value":305},"Tell CredVault how columns map:",{"type":14,"tag":237,"props":307,"children":309},{"code":308},"Source Column → Destination Field\ncustomer_id → id (rename)\nemail → user_email (rename)\ncreated_date → created_at (rename)\n[skip] → internal_tag (skip column)\n",[310],{"type":14,"tag":242,"props":311,"children":312},{"__ignoreMap":7},[313],{"type":20,"value":308},{"type":14,"tag":76,"props":315,"children":317},{"id":316},"type-conversion",[318],{"type":20,"value":319},"Type Conversion",{"type":14,"tag":22,"props":321,"children":322},{},[323],{"type":20,"value":324},"Automatic conversion:",{"type":14,"tag":237,"props":326,"children":328},{"code":327},"Source Type → Target Type\nVARCHAR → String\nINTEGER → Integer\nDECIMAL → Float\nTIMESTAMP → Datetime\nBOOLEAN → Boolean\n",[329],{"type":14,"tag":242,"props":330,"children":331},{"__ignoreMap":7},[332],{"type":20,"value":327},{"type":14,"tag":22,"props":334,"children":335},{},[336],{"type":20,"value":337},"Override if needed:",{"type":14,"tag":237,"props":339,"children":341},{"code":340},"Source: customer_tier (string: \"gold\", \"silver\")\nTarget: tier_code (integer: 1, 2)\nConversion: Create mapping \"gold\"→1, \"silver\"→2\n",[342],{"type":14,"tag":242,"props":343,"children":344},{"__ignoreMap":7},[345],{"type":20,"value":340},{"type":14,"tag":76,"props":347,"children":349},{"id":348},"data-transformation",[350],{"type":20,"value":351},"Data Transformation",{"type":14,"tag":22,"props":353,"children":354},{},[355],{"type":20,"value":356},"Transform data during migration:",{"type":14,"tag":237,"props":358,"children":362},{"code":359,"language":360,"meta":7,"className":361,"style":7},"# Uppercase all email addresses\nemail = email.upper()\n\n# Convert date format\ncreated_at = parse_date(created_at, format='MM\u002FDD\u002FYYYY')\n\n# Trim whitespace\nname = name.strip()\n\n# Calculate new field\nfull_age = current_year - birth_year\n","python","language-python shiki shiki-themes github-dark",[363],{"type":14,"tag":242,"props":364,"children":365},{"__ignoreMap":7},[366,377,386,396,405,414,422,431,440,448,457],{"type":14,"tag":367,"props":368,"children":371},"span",{"class":369,"line":370},"line",1,[372],{"type":14,"tag":367,"props":373,"children":374},{},[375],{"type":20,"value":376},"# Uppercase all email addresses\n",{"type":14,"tag":367,"props":378,"children":380},{"class":369,"line":379},2,[381],{"type":14,"tag":367,"props":382,"children":383},{},[384],{"type":20,"value":385},"email = email.upper()\n",{"type":14,"tag":367,"props":387,"children":389},{"class":369,"line":388},3,[390],{"type":14,"tag":367,"props":391,"children":393},{"emptyLinePlaceholder":392},true,[394],{"type":20,"value":395},"\n",{"type":14,"tag":367,"props":397,"children":399},{"class":369,"line":398},4,[400],{"type":14,"tag":367,"props":401,"children":402},{},[403],{"type":20,"value":404},"# Convert date format\n",{"type":14,"tag":367,"props":406,"children":408},{"class":369,"line":407},5,[409],{"type":14,"tag":367,"props":410,"children":411},{},[412],{"type":20,"value":413},"created_at = parse_date(created_at, format='MM\u002FDD\u002FYYYY')\n",{"type":14,"tag":367,"props":415,"children":417},{"class":369,"line":416},6,[418],{"type":14,"tag":367,"props":419,"children":420},{"emptyLinePlaceholder":392},[421],{"type":20,"value":395},{"type":14,"tag":367,"props":423,"children":425},{"class":369,"line":424},7,[426],{"type":14,"tag":367,"props":427,"children":428},{},[429],{"type":20,"value":430},"# Trim whitespace\n",{"type":14,"tag":367,"props":432,"children":434},{"class":369,"line":433},8,[435],{"type":14,"tag":367,"props":436,"children":437},{},[438],{"type":20,"value":439},"name = name.strip()\n",{"type":14,"tag":367,"props":441,"children":443},{"class":369,"line":442},9,[444],{"type":14,"tag":367,"props":445,"children":446},{"emptyLinePlaceholder":392},[447],{"type":20,"value":395},{"type":14,"tag":367,"props":449,"children":451},{"class":369,"line":450},10,[452],{"type":14,"tag":367,"props":453,"children":454},{},[455],{"type":20,"value":456},"# Calculate new field\n",{"type":14,"tag":367,"props":458,"children":460},{"class":369,"line":459},11,[461],{"type":14,"tag":367,"props":462,"children":463},{},[464],{"type":20,"value":465},"full_age = current_year - birth_year\n",{"type":14,"tag":28,"props":467,"children":469},{"id":468},"migration-process",[470],{"type":20,"value":471},"Migration Process",{"type":14,"tag":76,"props":473,"children":475},{"id":474},"pre-migration-checks",[476],{"type":20,"value":477},"Pre-Migration Checks",{"type":14,"tag":22,"props":479,"children":480},{},[481],{"type":20,"value":482},"System verifies:",{"type":14,"tag":40,"props":484,"children":485},{},[486,491,496,501,506],{"type":14,"tag":44,"props":487,"children":488},{},[489],{"type":20,"value":490},"✓ Source is accessible",{"type":14,"tag":44,"props":492,"children":493},{},[494],{"type":20,"value":495},"✓ Destination has space",{"type":14,"tag":44,"props":497,"children":498},{},[499],{"type":20,"value":500},"✓ Column mappings valid",{"type":14,"tag":44,"props":502,"children":503},{},[504],{"type":20,"value":505},"✓ No data conflicts",{"type":14,"tag":44,"props":507,"children":508},{},[509],{"type":20,"value":510},"✓ Permissions correct",{"type":14,"tag":76,"props":512,"children":514},{"id":513},"running-migration",[515],{"type":20,"value":516},"Running Migration",{"type":14,"tag":88,"props":518,"children":519},{},[520,529,557],{"type":14,"tag":44,"props":521,"children":522},{},[523,524],{"type":20,"value":155},{"type":14,"tag":95,"props":525,"children":526},{},[527],{"type":20,"value":528},"Start Migration",{"type":14,"tag":44,"props":530,"children":531},{},[532,534],{"type":20,"value":533},"System begins:\n",{"type":14,"tag":40,"props":535,"children":536},{},[537,542,547,552],{"type":14,"tag":44,"props":538,"children":539},{},[540],{"type":20,"value":541},"Reading from source",{"type":14,"tag":44,"props":543,"children":544},{},[545],{"type":20,"value":546},"Transforming data",{"type":14,"tag":44,"props":548,"children":549},{},[550],{"type":20,"value":551},"Writing to destination",{"type":14,"tag":44,"props":553,"children":554},{},[555],{"type":20,"value":556},"Tracking progress",{"type":14,"tag":44,"props":558,"children":559},{},[560],{"type":20,"value":561},"See real-time status:",{"type":14,"tag":237,"props":563,"children":565},{"code":564},"Progress: ████████░░ 82%\nMigrated: 1,024,567 \u002F 1,234,567 rows\nTime elapsed: 23 minutes\nEstimated: 5 minutes remaining\nSpeed: 45,000 rows\u002Fminute\n",[566],{"type":14,"tag":242,"props":567,"children":568},{"__ignoreMap":7},[569],{"type":20,"value":564},{"type":14,"tag":76,"props":571,"children":573},{"id":572},"monitoring",[574],{"type":20,"value":575},"Monitoring",{"type":14,"tag":22,"props":577,"children":578},{},[579],{"type":20,"value":580},"During migration, monitor:",{"type":14,"tag":40,"props":582,"children":583},{},[584,589,594,599,604],{"type":14,"tag":44,"props":585,"children":586},{},[587],{"type":20,"value":588},"Progress percentage",{"type":14,"tag":44,"props":590,"children":591},{},[592],{"type":20,"value":593},"Rows processed",{"type":14,"tag":44,"props":595,"children":596},{},[597],{"type":20,"value":598},"Errors encountered",{"type":14,"tag":44,"props":600,"children":601},{},[602],{"type":20,"value":603},"Network\u002FCPU usage",{"type":14,"tag":44,"props":605,"children":606},{},[607],{"type":20,"value":608},"Current step",{"type":14,"tag":76,"props":610,"children":612},{"id":611},"handling-errors",[613],{"type":20,"value":614},"Handling Errors",{"type":14,"tag":22,"props":616,"children":617},{},[618],{"type":20,"value":619},"If errors occur:",{"type":14,"tag":237,"props":621,"children":623},{"code":622},"Error on row 45,632:\nColumn 'customer_id' has invalid value: \"ABC123\"\nExpected: Integer\n\nOptions:\n○ Skip row (continue)\n● Fail and stop\n○ Mark for review (continue, flag later)\n",[624],{"type":14,"tag":242,"props":625,"children":626},{"__ignoreMap":7},[627],{"type":20,"value":622},{"type":14,"tag":22,"props":629,"children":630},{},[631],{"type":20,"value":632},"Choose how to handle:",{"type":14,"tag":40,"props":634,"children":635},{},[636,646,656],{"type":14,"tag":44,"props":637,"children":638},{},[639,644],{"type":14,"tag":95,"props":640,"children":641},{},[642],{"type":20,"value":643},"Skip",{"type":20,"value":645}," - Continue without this row",{"type":14,"tag":44,"props":647,"children":648},{},[649,654],{"type":14,"tag":95,"props":650,"children":651},{},[652],{"type":20,"value":653},"Stop",{"type":20,"value":655}," - Halt migration",{"type":14,"tag":44,"props":657,"children":658},{},[659,664],{"type":14,"tag":95,"props":660,"children":661},{},[662],{"type":20,"value":663},"Flag",{"type":20,"value":665}," - Continue but mark for manual review",{"type":14,"tag":28,"props":667,"children":669},{"id":668},"validating-data",[670],{"type":20,"value":671},"Validating Data",{"type":14,"tag":76,"props":673,"children":675},{"id":674},"post-migration-checks",[676],{"type":20,"value":677},"Post-Migration Checks",{"type":14,"tag":22,"props":679,"children":680},{},[681],{"type":20,"value":682},"After migration completes:",{"type":14,"tag":237,"props":684,"children":686},{"code":685},"Source Database:\n- customers: 1,234,567 rows\n- orders: 5,234,891 rows\n- products: 25,643 rows\nTotal: 6,495,101 rows\n\nCredVault Database:\n- customers: 1,234,567 rows ✓\n- orders: 5,234,891 rows ✓\n- products: 25,643 rows ✓\nTotal: 6,495,101 rows ✓\n\nValidation: PASSED\n",[687],{"type":14,"tag":242,"props":688,"children":689},{"__ignoreMap":7},[690],{"type":20,"value":685},{"type":14,"tag":76,"props":692,"children":694},{"id":693},"data-reconciliation",[695],{"type":20,"value":696},"Data Reconciliation",{"type":14,"tag":22,"props":698,"children":699},{},[700],{"type":20,"value":701},"Compare source and destination:",{"type":14,"tag":237,"props":703,"children":705},{"code":704},"Record count match: ✓\nColumn count match: ✓\nData types match: ✓\nNo null mismatches: ✓\nChecksum: ✓\n",[706],{"type":14,"tag":242,"props":707,"children":708},{"__ignoreMap":7},[709],{"type":20,"value":704},{"type":14,"tag":76,"props":711,"children":713},{"id":712},"sample-verification",[714],{"type":20,"value":715},"Sample Verification",{"type":14,"tag":22,"props":717,"children":718},{},[719],{"type":20,"value":720},"Spot-check random samples:",{"type":14,"tag":237,"props":722,"children":724},{"code":723},"Checking 100 random rows:\nSource | Destination | Match\n456    | 456         | ✓\n8923   | 8923        | ✓\n124567 | 124567      | ✓\n... (100 of 100 match)\n\nVerification: PASSED\n",[725],{"type":14,"tag":242,"props":726,"children":727},{"__ignoreMap":7},[728],{"type":20,"value":723},{"type":14,"tag":28,"props":730,"children":732},{"id":731},"continuous-migration",[733],{"type":20,"value":734},"Continuous Migration",{"type":14,"tag":76,"props":736,"children":738},{"id":737},"setup-sync",[739],{"type":20,"value":740},"Setup Sync",{"type":14,"tag":22,"props":742,"children":743},{},[744],{"type":20,"value":745},"For continuous sync:",{"type":14,"tag":88,"props":747,"children":748},{},[749,777],{"type":14,"tag":44,"props":750,"children":751},{},[752,754],{"type":20,"value":753},"Set sync frequency:",{"type":14,"tag":40,"props":755,"children":756},{},[757,762,767,772],{"type":14,"tag":44,"props":758,"children":759},{},[760],{"type":20,"value":761},"Every 5 minutes",{"type":14,"tag":44,"props":763,"children":764},{},[765],{"type":20,"value":766},"Hourly",{"type":14,"tag":44,"props":768,"children":769},{},[770],{"type":20,"value":771},"Daily",{"type":14,"tag":44,"props":773,"children":774},{},[775],{"type":20,"value":776},"Custom interval",{"type":14,"tag":44,"props":778,"children":779},{},[780,782],{"type":20,"value":781},"Choose sync mode:",{"type":14,"tag":40,"props":783,"children":784},{},[785,795,805],{"type":14,"tag":44,"props":786,"children":787},{},[788,793],{"type":14,"tag":95,"props":789,"children":790},{},[791],{"type":20,"value":792},"Full Sync",{"type":20,"value":794}," - Recopy everything",{"type":14,"tag":44,"props":796,"children":797},{},[798,803],{"type":14,"tag":95,"props":799,"children":800},{},[801],{"type":20,"value":802},"Incremental",{"type":20,"value":804}," - Only new\u002Fchanged rows",{"type":14,"tag":44,"props":806,"children":807},{},[808,813],{"type":14,"tag":95,"props":809,"children":810},{},[811],{"type":20,"value":812},"CDC",{"type":20,"value":814}," - Change Data Capture",{"type":14,"tag":76,"props":816,"children":818},{"id":817},"monitoring-sync",[819],{"type":20,"value":820},"Monitoring Sync",{"type":14,"tag":237,"props":822,"children":824},{"code":823},"Last sync: 2024-06-12 14:30:22 UTC\nStatus: Success\nDuration: 2 minutes\nNew rows: 143\nUpdated rows: 87\nDeleted rows: 12\nNext sync: 2024-06-12 14:35:22 UTC\n",[825],{"type":14,"tag":242,"props":826,"children":827},{"__ignoreMap":7},[828],{"type":20,"value":823},{"type":14,"tag":76,"props":830,"children":832},{"id":831},"pauseresume",[833],{"type":20,"value":834},"Pause\u002FResume",{"type":14,"tag":22,"props":836,"children":837},{},[838],{"type":20,"value":839},"Pause sync during:",{"type":14,"tag":40,"props":841,"children":842},{},[843,848,853],{"type":14,"tag":44,"props":844,"children":845},{},[846],{"type":20,"value":847},"Maintenance windows",{"type":14,"tag":44,"props":849,"children":850},{},[851],{"type":20,"value":852},"Source system updates",{"type":14,"tag":44,"props":854,"children":855},{},[856],{"type":20,"value":857},"Destination backups",{"type":14,"tag":22,"props":859,"children":860},{},[861],{"type":20,"value":862},"Resume when ready.",{"type":14,"tag":28,"props":864,"children":866},{"id":865},"rollback-and-recovery",[867],{"type":20,"value":868},"Rollback and Recovery",{"type":14,"tag":76,"props":870,"children":872},{"id":871},"before-migration",[873],{"type":20,"value":874},"Before Migration",{"type":14,"tag":22,"props":876,"children":877},{},[878],{"type":20,"value":879},"Create backup:",{"type":14,"tag":237,"props":881,"children":883},{"code":882},"CredVault automatically creates backup\nBackup name: migration_2024_06_12_backup\nRetention: 30 days\nCan restore anytime\n",[884],{"type":14,"tag":242,"props":885,"children":886},{"__ignoreMap":7},[887],{"type":20,"value":882},{"type":14,"tag":76,"props":889,"children":891},{"id":890},"after-problems",[892],{"type":20,"value":893},"After Problems",{"type":14,"tag":22,"props":895,"children":896},{},[897],{"type":20,"value":898},"Rollback migration:",{"type":14,"tag":88,"props":900,"children":901},{},[902,911,916,921,926],{"type":14,"tag":44,"props":903,"children":904},{},[905,906],{"type":20,"value":155},{"type":14,"tag":95,"props":907,"children":908},{},[909],{"type":20,"value":910},"Rollback",{"type":14,"tag":44,"props":912,"children":913},{},[914],{"type":20,"value":915},"Choose restore point",{"type":14,"tag":44,"props":917,"children":918},{},[919],{"type":20,"value":920},"Restore to previous state",{"type":14,"tag":44,"props":922,"children":923},{},[924],{"type":20,"value":925},"Verify data restored",{"type":14,"tag":44,"props":927,"children":928},{},[929],{"type":20,"value":930},"Debug issue",{"type":14,"tag":76,"props":932,"children":934},{"id":933},"testing-first",[935],{"type":20,"value":936},"Testing First",{"type":14,"tag":22,"props":938,"children":939},{},[940],{"type":20,"value":941},"Test in staging environment:",{"type":14,"tag":237,"props":943,"children":945},{"code":944},"1. Create staging CredVault instance\n2. Run migration to staging\n3. Validate data\n4. Check application works\n5. Then run to production\n",[946],{"type":14,"tag":242,"props":947,"children":948},{"__ignoreMap":7},[949],{"type":20,"value":944},{"type":14,"tag":28,"props":951,"children":953},{"id":952},"best-practices",[954],{"type":20,"value":955},"Best Practices",{"type":14,"tag":76,"props":957,"children":959},{"id":958},"plan-thoroughly",[960],{"type":20,"value":961},"Plan Thoroughly",{"type":14,"tag":40,"props":963,"children":964},{},[965,970,975,980],{"type":14,"tag":44,"props":966,"children":967},{},[968],{"type":20,"value":969},"Map all columns before starting",{"type":14,"tag":44,"props":971,"children":972},{},[973],{"type":20,"value":974},"Test transformations",{"type":14,"tag":44,"props":976,"children":977},{},[978],{"type":20,"value":979},"Identify constraints",{"type":14,"tag":44,"props":981,"children":982},{},[983],{"type":20,"value":984},"Plan for downtime",{"type":14,"tag":76,"props":986,"children":988},{"id":987},"test-first",[989],{"type":20,"value":990},"Test First",{"type":14,"tag":40,"props":992,"children":993},{},[994,999,1004,1009],{"type":14,"tag":44,"props":995,"children":996},{},[997],{"type":20,"value":998},"Run on non-production data",{"type":14,"tag":44,"props":1000,"children":1001},{},[1002],{"type":20,"value":1003},"Verify output",{"type":14,"tag":44,"props":1005,"children":1006},{},[1007],{"type":20,"value":1008},"Test application with migrated data",{"type":14,"tag":44,"props":1010,"children":1011},{},[1012],{"type":20,"value":1013},"Practice rollback",{"type":14,"tag":76,"props":1015,"children":1017},{"id":1016},"monitor-closely",[1018],{"type":20,"value":1019},"Monitor Closely",{"type":14,"tag":40,"props":1021,"children":1022},{},[1023,1028,1033,1038],{"type":14,"tag":44,"props":1024,"children":1025},{},[1026],{"type":20,"value":1027},"Watch progress",{"type":14,"tag":44,"props":1029,"children":1030},{},[1031],{"type":20,"value":1032},"Check error logs",{"type":14,"tag":44,"props":1034,"children":1035},{},[1036],{"type":20,"value":1037},"Validate after completion",{"type":14,"tag":44,"props":1039,"children":1040},{},[1041],{"type":20,"value":1042},"Keep audit trail",{"type":14,"tag":76,"props":1044,"children":1046},{"id":1045},"communicate",[1047],{"type":20,"value":1048},"Communicate",{"type":14,"tag":40,"props":1050,"children":1051},{},[1052,1057,1062,1067],{"type":14,"tag":44,"props":1053,"children":1054},{},[1055],{"type":20,"value":1056},"Notify users of maintenance",{"type":14,"tag":44,"props":1058,"children":1059},{},[1060],{"type":20,"value":1061},"Provide timeline",{"type":14,"tag":44,"props":1063,"children":1064},{},[1065],{"type":20,"value":1066},"Update on progress",{"type":14,"tag":44,"props":1068,"children":1069},{},[1070],{"type":20,"value":1071},"Confirm completion",{"type":14,"tag":28,"props":1073,"children":1075},{"id":1074},"common-workflows",[1076],{"type":20,"value":1077},"Common Workflows",{"type":14,"tag":76,"props":1079,"children":1081},{"id":1080},"one-time-database-migration",[1082],{"type":20,"value":1083},"One-Time Database Migration",{"type":14,"tag":237,"props":1085,"children":1087},{"code":1086},"1. Set up connection to old database\n2. Select all tables\n3. Map columns\n4. Test in staging\n5. Schedule migration\n6. Backup destination\n7. Run migration\n8. Validate\n9. Switch applications over\n",[1088],{"type":14,"tag":242,"props":1089,"children":1090},{"__ignoreMap":7},[1091],{"type":20,"value":1086},{"type":14,"tag":76,"props":1093,"children":1095},{"id":1094},"regular-data-import",[1096],{"type":20,"value":1097},"Regular Data Import",{"type":14,"tag":237,"props":1099,"children":1101},{"code":1100},"1. Create CSV\u002FAPI connection\n2. Select columns to import\n3. Map to CredVault fields\n4. Test with sample\n5. Schedule weekly import\n6. Monitor for errors\n7. Review new data\n",[1102],{"type":14,"tag":242,"props":1103,"children":1104},{"__ignoreMap":7},[1105],{"type":20,"value":1100},{"type":14,"tag":76,"props":1107,"children":1109},{"id":1108},"multi-source-consolidation",[1110],{"type":20,"value":1111},"Multi-Source Consolidation",{"type":14,"tag":237,"props":1113,"children":1115},{"code":1114},"1. Identify data sources (3+ databases)\n2. Design unified schema\n3. Create migration for each source\n4. Map overlapping fields\n5. Handle deduplication\n6. Run all migrations\n7. Validate consistency\n",[1116],{"type":14,"tag":242,"props":1117,"children":1118},{"__ignoreMap":7},[1119],{"type":20,"value":1114},{"type":14,"tag":28,"props":1121,"children":1123},{"id":1122},"troubleshooting",[1124],{"type":20,"value":1125},"Troubleshooting",{"type":14,"tag":76,"props":1127,"children":1129},{"id":1128},"connection-fails",[1130],{"type":20,"value":1131},"Connection fails",{"type":14,"tag":40,"props":1133,"children":1134},{},[1135,1140,1145,1150],{"type":14,"tag":44,"props":1136,"children":1137},{},[1138],{"type":20,"value":1139},"Check connection string",{"type":14,"tag":44,"props":1141,"children":1142},{},[1143],{"type":20,"value":1144},"Verify firewall rules",{"type":14,"tag":44,"props":1146,"children":1147},{},[1148],{"type":20,"value":1149},"Test credentials",{"type":14,"tag":44,"props":1151,"children":1152},{},[1153],{"type":20,"value":1154},"Check network connectivity",{"type":14,"tag":76,"props":1156,"children":1158},{"id":1157},"data-mismatch",[1159],{"type":20,"value":1160},"Data mismatch",{"type":14,"tag":40,"props":1162,"children":1163},{},[1164,1169,1174,1179],{"type":14,"tag":44,"props":1165,"children":1166},{},[1167],{"type":20,"value":1168},"Verify column mapping",{"type":14,"tag":44,"props":1170,"children":1171},{},[1172],{"type":20,"value":1173},"Check data transformations",{"type":14,"tag":44,"props":1175,"children":1176},{},[1177],{"type":20,"value":1178},"Look for encoding issues",{"type":14,"tag":44,"props":1180,"children":1181},{},[1182],{"type":20,"value":1183},"Compare sample rows",{"type":14,"tag":76,"props":1185,"children":1187},{"id":1186},"too-slow",[1188],{"type":20,"value":1189},"Too slow",{"type":14,"tag":40,"props":1191,"children":1192},{},[1193,1198,1203,1208],{"type":14,"tag":44,"props":1194,"children":1195},{},[1196],{"type":20,"value":1197},"Increase batch size",{"type":14,"tag":44,"props":1199,"children":1200},{},[1201],{"type":20,"value":1202},"Use incremental mode",{"type":14,"tag":44,"props":1204,"children":1205},{},[1206],{"type":20,"value":1207},"Reduce concurrent operations",{"type":14,"tag":44,"props":1209,"children":1210},{},[1211],{"type":20,"value":1212},"Check network bandwidth",{"type":14,"tag":76,"props":1214,"children":1216},{"id":1215},"storage-exceeded",[1217],{"type":20,"value":1218},"Storage exceeded",{"type":14,"tag":40,"props":1220,"children":1221},{},[1222,1227,1232,1237],{"type":14,"tag":44,"props":1223,"children":1224},{},[1225],{"type":20,"value":1226},"Clean up unused data",{"type":14,"tag":44,"props":1228,"children":1229},{},[1230],{"type":20,"value":1231},"Archive old records",{"type":14,"tag":44,"props":1233,"children":1234},{},[1235],{"type":20,"value":1236},"Reduce retention period",{"type":14,"tag":44,"props":1238,"children":1239},{},[1240],{"type":20,"value":1241},"Upgrade storage plan",{"type":14,"tag":28,"props":1243,"children":1245},{"id":1244},"related-topics",[1246],{"type":20,"value":1247},"Related Topics",{"type":14,"tag":40,"props":1249,"children":1250},{},[1251,1263,1274],{"type":14,"tag":44,"props":1252,"children":1253},{},[1254,1261],{"type":14,"tag":1255,"props":1256,"children":1258},"a",{"href":1257},"\u002Fdocs\u002Ffeatures\u002Fdatabase-clusters",[1259],{"type":20,"value":1260},"Database Clusters",{"type":20,"value":1262}," - Store migrated data",{"type":14,"tag":44,"props":1264,"children":1265},{},[1266,1272],{"type":14,"tag":1255,"props":1267,"children":1269},{"href":1268},"\u002Fdocs\u002Ffeatures\u002Factivity-logs",[1270],{"type":20,"value":1271},"Activity Logs",{"type":20,"value":1273}," - Track migration events",{"type":14,"tag":44,"props":1275,"children":1276},{},[1277,1283],{"type":14,"tag":1255,"props":1278,"children":1280},{"href":1279},"\u002Fdocs\u002Ffeatures\u002Fbilling",[1281],{"type":20,"value":1282},"Billing & Plans",{"type":20,"value":1284}," - Understand storage costs",{"type":14,"tag":1286,"props":1287,"children":1288},"style",{},[1289],{"type":20,"value":1290},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":7,"searchDepth":379,"depth":379,"links":1292},[1293,1294,1298,1303,1308,1314,1319,1324,1329,1335,1340,1346],{"id":30,"depth":379,"text":33},{"id":71,"depth":379,"text":74,"children":1295},[1296,1297],{"id":78,"depth":388,"text":81},{"id":144,"depth":388,"text":147},{"id":221,"depth":379,"text":224,"children":1299},[1300,1301,1302],{"id":227,"depth":388,"text":230},{"id":253,"depth":388,"text":256},{"id":272,"depth":388,"text":275},{"id":291,"depth":379,"text":294,"children":1304},[1305,1306,1307],{"id":297,"depth":388,"text":300},{"id":316,"depth":388,"text":319},{"id":348,"depth":388,"text":351},{"id":468,"depth":379,"text":471,"children":1309},[1310,1311,1312,1313],{"id":474,"depth":388,"text":477},{"id":513,"depth":388,"text":516},{"id":572,"depth":388,"text":575},{"id":611,"depth":388,"text":614},{"id":668,"depth":379,"text":671,"children":1315},[1316,1317,1318],{"id":674,"depth":388,"text":677},{"id":693,"depth":388,"text":696},{"id":712,"depth":388,"text":715},{"id":731,"depth":379,"text":734,"children":1320},[1321,1322,1323],{"id":737,"depth":388,"text":740},{"id":817,"depth":388,"text":820},{"id":831,"depth":388,"text":834},{"id":865,"depth":379,"text":868,"children":1325},[1326,1327,1328],{"id":871,"depth":388,"text":874},{"id":890,"depth":388,"text":893},{"id":933,"depth":388,"text":936},{"id":952,"depth":379,"text":955,"children":1330},[1331,1332,1333,1334],{"id":958,"depth":388,"text":961},{"id":987,"depth":388,"text":990},{"id":1016,"depth":388,"text":1019},{"id":1045,"depth":388,"text":1048},{"id":1074,"depth":379,"text":1077,"children":1336},[1337,1338,1339],{"id":1080,"depth":388,"text":1083},{"id":1094,"depth":388,"text":1097},{"id":1108,"depth":388,"text":1111},{"id":1122,"depth":379,"text":1125,"children":1341},[1342,1343,1344,1345],{"id":1128,"depth":388,"text":1131},{"id":1157,"depth":388,"text":1160},{"id":1186,"depth":388,"text":1189},{"id":1215,"depth":388,"text":1218},{"id":1244,"depth":379,"text":1247},"markdown","content:docs:features:migrations.md","content","docs\u002Ffeatures\u002Fmigrations.md","docs\u002Ffeatures\u002Fmigrations","md",1782233761977]