[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"marketplace-site-banners":3,"github-stars":9,"@directus-labs\u002Fmigration-bundle":115},[4],{"id":5,"icon":6,"content":7,"link":8,"include_paths":6,"exclude_paths":6},"5cf2f5f6-aecf-4395-8c23-69de326fdf02",null,"AI Assistant: Query Your Data, Update Content + More","https:\u002F\u002Fdirectus.com\u002Fai",{"id":10,"node_id":11,"name":12,"full_name":13,"private":14,"owner":15,"html_url":33,"description":34,"fork":14,"url":35,"forks_url":36,"keys_url":37,"collaborators_url":38,"teams_url":39,"hooks_url":40,"issue_events_url":41,"events_url":42,"assignees_url":43,"branches_url":44,"tags_url":45,"blobs_url":46,"git_tags_url":47,"git_refs_url":48,"trees_url":49,"statuses_url":50,"languages_url":51,"stargazers_url":52,"contributors_url":53,"subscribers_url":54,"subscription_url":55,"commits_url":56,"git_commits_url":57,"comments_url":58,"issue_comment_url":59,"contents_url":60,"compare_url":61,"merges_url":62,"archive_url":63,"downloads_url":64,"issues_url":65,"pulls_url":66,"milestones_url":67,"notifications_url":68,"labels_url":69,"releases_url":70,"deployments_url":71,"created_at":72,"updated_at":73,"pushed_at":74,"git_url":75,"ssh_url":76,"clone_url":77,"svn_url":33,"homepage":78,"size":79,"stargazers_count":80,"watchers_count":80,"language":81,"has_issues":82,"has_projects":82,"has_downloads":14,"has_wiki":14,"has_pages":14,"has_discussions":82,"forks_count":83,"mirror_url":6,"archived":14,"disabled":14,"open_issues_count":84,"license":85,"allow_forking":82,"is_template":14,"web_commit_signoff_required":14,"has_pull_requests":82,"pull_request_creation_policy":90,"topics":91,"visibility":32,"forks":83,"open_issues":84,"watchers":80,"default_branch":111,"temp_clone_token":6,"custom_properties":112,"organization":113,"network_count":83,"subscribers_count":114},7122594,"MDEwOlJlcG9zaXRvcnk3MTIyNTk0","directus","directus\u002Fdirectus",false,{"login":12,"id":16,"node_id":17,"avatar_url":18,"gravatar_id":19,"url":20,"html_url":21,"followers_url":22,"following_url":23,"gists_url":24,"starred_url":25,"subscriptions_url":26,"organizations_url":27,"repos_url":28,"events_url":29,"received_events_url":30,"type":31,"user_view_type":32,"site_admin":14},15967950,"MDEyOk9yZ2FuaXphdGlvbjE1OTY3OTUw","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F15967950?v=4","","https:\u002F\u002Fapi.github.com\u002Fusers\u002Fdirectus","https:\u002F\u002Fgithub.com\u002Fdirectus","https:\u002F\u002Fapi.github.com\u002Fusers\u002Fdirectus\u002Ffollowers","https:\u002F\u002Fapi.github.com\u002Fusers\u002Fdirectus\u002Ffollowing{\u002Fother_user}","https:\u002F\u002Fapi.github.com\u002Fusers\u002Fdirectus\u002Fgists{\u002Fgist_id}","https:\u002F\u002Fapi.github.com\u002Fusers\u002Fdirectus\u002Fstarred{\u002Fowner}{\u002Frepo}","https:\u002F\u002Fapi.github.com\u002Fusers\u002Fdirectus\u002Fsubscriptions","https:\u002F\u002Fapi.github.com\u002Fusers\u002Fdirectus\u002Forgs","https:\u002F\u002Fapi.github.com\u002Fusers\u002Fdirectus\u002Frepos","https:\u002F\u002Fapi.github.com\u002Fusers\u002Fdirectus\u002Fevents{\u002Fprivacy}","https:\u002F\u002Fapi.github.com\u002Fusers\u002Fdirectus\u002Freceived_events","Organization","public","https:\u002F\u002Fgithub.com\u002Fdirectus\u002Fdirectus","The flexible backend for all your projects 🐰 Turn your DB into a headless CMS, admin panels, or apps with a custom UI, instant APIs, auth & more.","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fforks","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fkeys{\u002Fkey_id}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fcollaborators{\u002Fcollaborator}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fteams","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fhooks","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fissues\u002Fevents{\u002Fnumber}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fevents","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fassignees{\u002Fuser}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fbranches{\u002Fbranch}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Ftags","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fgit\u002Fblobs{\u002Fsha}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fgit\u002Ftags{\u002Fsha}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fgit\u002Frefs{\u002Fsha}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fgit\u002Ftrees{\u002Fsha}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fstatuses\u002F{sha}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Flanguages","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fstargazers","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fcontributors","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fsubscribers","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fsubscription","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fcommits{\u002Fsha}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fgit\u002Fcommits{\u002Fsha}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fcomments{\u002Fnumber}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fissues\u002Fcomments{\u002Fnumber}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fcontents\u002F{+path}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fcompare\u002F{base}...{head}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fmerges","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002F{archive_format}{\u002Fref}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fdownloads","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fissues{\u002Fnumber}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fpulls{\u002Fnumber}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fmilestones{\u002Fnumber}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fnotifications{?since,all,participating}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Flabels{\u002Fname}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Freleases{\u002Fid}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fdeployments","2012-12-12T01:35:36Z","2026-11-06T12:11:45Z","2026-11-06T13:55:16Z","git:\u002F\u002Fgithub.com\u002Fdirectus\u002Fdirectus.git","git@github.com:directus\u002Fdirectus.git","https:\u002F\u002Fgithub.com\u002Fdirectus\u002Fdirectus.git","https:\u002F\u002Fdirectus.com",455421,38727,"TypeScript",true,4993,370,{"key":86,"name":87,"spdx_id":88,"url":6,"node_id":89},"other","Other","NOASSERTION","MDc6TGljZW5zZTA=","all",[92,93,94,95,96,97,12,98,99,100,101,102,103,104,105,106,107,108,109,110],"api","app","cms","composable","data-visualization","database","graphql","headless-cms","javascript","mariadb","mssql","mysql","no-code","node","postgresql","sql","sqlite","typescript","vue","main",{},{"login":12,"id":16,"node_id":17,"avatar_url":18,"gravatar_id":19,"url":20,"html_url":21,"followers_url":22,"following_url":23,"gists_url":24,"starred_url":25,"subscriptions_url":26,"organizations_url":27,"repos_url":28,"events_url":29,"received_events_url":30,"type":31,"user_view_type":32,"site_admin":14},339,{"name":116,"description":117,"verified":14,"id":118,"readme":119,"type":120,"publisher":121,"last_updated":127,"host_version":128,"downloads":129,"total_downloads":130,"sandbox":14,"license":131,"versions":132,"formatted_name":205,"formatted_readme":206,"formatted_description":117,"featured_image":207,"images":208,"repository_url":166,"recent_downloads_7_days":130,"recent_downloads_30_days":130},"@directus-labs\u002Fmigration-bundle","Migrate from the current source Directus instance to another target Directus instance.","21ca392a-6d38-4e34-9480-782fb358b601","# Directus Migration Module\n\nMigrate the current Directus instance to another location with ease, using this simple module.\n\n![Migration Module Banner](https:\u002F\u002Fraw.githubusercontent.com\u002Fdirectus-labs\u002Fextensions\u002Fmain\u002Fpackages\u002Fmigration-bundle\u002Fdocs\u002Fmigration-module.jpg)\n\n## Usage\n\nOnce installed you can enable the navigation menu item in your Project Settings or go straight to the module page at `\u002Fadmin\u002Fmigration`.\n\nTo get started, enter the destination URL and admin token into the fields provided, then click \u003Cstrong>Check\u003C\u002Fstrong>. This will compare both Directus platform and see if they are compatible.\n\n_Please make sure the destination instance is on the same version and the same database platform as the source instance._\n\nIf valid, you can start the \"Dry Run\" migration straight away or customize the migration as required.\n\nRun the migration by unchecking the Dry Run checkbox and click start. The process runs in the background so you can close your browser and it will notify you when the migration is complete. Normally, a small to medium project will only be a 1 - 2 minutes. Projects will large file libraries will take much longer.\n\n![Migration Live Updates](https:\u002F\u002Fraw.githubusercontent.com\u002Fdirectus-labs\u002Fextensions\u002Fmain\u002Fpackages\u002Fmigration-bundle\u002Fdocs\u002Fmigration-module-live-updates.jpg)\n\n### Incomatible Schema\n\nThe destination instance must be the same version and the same database platform as the source instance. This can be overriden using the **Force** checkbox which appears when this error occurs.\n\nThis is not recommended and will most likely need further intervention.\n\n### Failed Migration\n\nIf the migration fails, don't worry, simply run the migration again. Existing content is skipped so it will continue where it left off.\n\n## Requirements\n\n- 2x Directus instances on at least 11.1.2+ using the same database platform.\n- Admin user and admin token from destination.\n\n_For larger projects, migrations naturally use significant bandwidth. Limits have been placed on API calls to ensure the destination is not overwhelmed._\n\n## Installation\n\nRefer to the Official Guide for details on installing the extension from the Marketplace or manually.\n\n## Configuration\n\n### Hybrid Configuration System\n\nThe migration module uses a two-tier configuration system combining environment variables and Directus presets for maximum flexibility.\n\n### 1. Environment Variables (Admin Defaults)\n\nAdministrators can set default values that apply to all users via environment variables:\n\n```bash\n# Default destination URL\nMIGRATION_BUNDLE_DEFAULT_URL=https:\u002F\u002Fstage.example.com\n\n# Default admin token (optional - can be left empty for security)\nMIGRATION_BUNDLE_DEFAULT_TOKEN=your-admin-token\n\n# Default selected options (comma-separated)\nMIGRATION_BUNDLE_DEFAULT_OPTIONS=content,users,flows\n```\n\nAvailable options for `MIGRATION_BUNDLE_DEFAULT_OPTIONS`:\n- `content` - Collections and their data\n- `users` - Users, roles, and permissions\n- `comments` - Activity comments\n- `presets` - User bookmarks\n- `dashboards` - Insights dashboards\n- `extensions` - Installed extensions\n- `flows` - Automation flows\n\n### 2. Directus Presets (User Configurations)\n\nUsers can save their migration configurations as Directus presets, which are stored in the database and accessible across sessions and devices.\n\n**Features:**\n- **Named Configurations**: Save multiple configs like \"Production Sync\", \"Content Only\", \"Full Migration\"\n- **Scope Control**: Save presets for yourself, your role, or globally (admin only)\n- **Quick Access**: Load saved configurations from a dropdown menu\n- **Override Defaults**: User presets take precedence over environment defaults\n\n**How to use:**\n1. Configure your migration settings (URL, token, options)\n2. Click the bookmark icon (📑) to save as a preset\n3. Choose a name and scope (personal\u002Frole\u002Fglobal)\n4. Load saved presets from the dropdown above the form\n\n### 3. Configuration Priority\n\nThe system follows this priority order:\n1. **User-selected preset** (highest priority)\n2. **Environment defaults** (if no preset selected)\n3. **Empty form** (if neither configured)\n\nThis approach provides:\n- **For Admins**: Environment-specific defaults across environments\n- **For Users**: Personal saved configurations\n- **For Teams**: Shared configurations via role-based presets\n- **Best Practice**: Consistent setups with flexibility\n\n## How to Customize the Migration\n\n1. On the migration module, add the destination server and token and click **Check**\n2. If valid, the Migration options field will appear. Click this to reveal what is migrated\n3. Uncheck any sections to exclude from the migration\n4. Start the migration\n\n### File Batch Size\n\nWhen the **content** scope is selected, a **Batch size** control appears. This controls how many files are read into memory and uploaded before a new batch begins.\n\n| Value | Behavior |\n|---|---|\n| 5 | Lowest memory usage — best for constrained environments |\n| **10** (default) | Suitable for most projects |\n| 15 | Moderate speed increase |\n| 20 | Faster on high-bandwidth connections |\n| 25 | Maximum throughput — higher memory usage |\n\n**When to adjust:**\n- **Lower the batch size** if the migration runs out of memory or the source\u002Fdestination server is under heavy load.\n- **Raise the batch size** if you have a fast connection and want to speed up large file libraries.\n\n![Customise the module](https:\u002F\u002Fraw.githubusercontent.com\u002Fdirectus-labs\u002Fextensions\u002Fmain\u002Fpackages\u002Fmigration-bundle\u002Fdocs\u002Fmigration-module-customize.jpg)\n\n\n## Permissions\n\nThis extension requires admin privilages on both instances to ensure all data is accessible and writable.\n","bundle",{"username":122,"verified":82,"id":123,"github_username":122,"github_name":124,"github_blog":125,"github_bio":6,"github_location":6,"github_company":6,"github_avatar_url":126},"bryantgillespie","85f85c84-9af0-4ba7-a30f-3617605d412b","Bryant Gillespie","https:\u002F\u002Fwww.bryantgillespie.com","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F23302570?v=4","2026-03-03T16:11:26.730Z","^11.1.2",[],0,"MIT",[133,148,163,179,193],{"version":134,"package":118,"publisher":135,"type":120,"host_version":128,"publish_date":136,"verified":14,"id":137,"url_repository":6,"url_homepage":6,"url_bugs":6,"file_count":138,"unpacked_size":139,"bundled":140,"maintainers":143,"sandbox":14,"sandbox_requested_scopes":6,"license":131},"1.0.0","74ce2e77-733a-4e9a-b96d-93bf6264f622","2025-03-06T09:53:39.557Z","2fda1174-4823-4a90-b3d4-45412b262e7b",4,512120,[141,142],"1d674be3-6ec4-4dc1-b8f1-d30b7a2ec739","3694634c-50af-49e5-b056-56adb8921953",[144,145,146,147],12080,12081,12082,12083,{"version":149,"package":118,"publisher":150,"type":120,"host_version":128,"publish_date":151,"verified":14,"id":152,"url_repository":6,"url_homepage":6,"url_bugs":6,"file_count":138,"unpacked_size":153,"bundled":154,"maintainers":157,"sandbox":14,"sandbox_requested_scopes":6,"license":131},"1.1.0","efc151f5-9415-4285-a908-95484b6c9d5c","2025-10-09T18:38:31.930Z","4f4d4388-e022-4435-8bf5-4d626114c522",526427,[155,156],"2c585b21-81cd-47b0-b119-a7b2d2a61653","67dfb277-55db-441c-bb25-f710bee91913",[158,159,160,161,162],13173,13174,13175,13176,13177,{"version":164,"package":118,"publisher":123,"type":120,"host_version":128,"publish_date":127,"verified":14,"id":165,"url_repository":166,"url_homepage":167,"url_bugs":168,"file_count":169,"unpacked_size":170,"bundled":171,"maintainers":174,"sandbox":14,"sandbox_requested_scopes":6,"license":131},"1.2.0","aa01bbf5-cff9-4092-80ed-0b389b723703","https:\u002F\u002Fgithub.com\u002Fdirectus-labs\u002Fextensions.git","https:\u002F\u002Fgithub.com\u002Fdirectus-labs\u002Fextensions#readme","https:\u002F\u002Fgithub.com\u002Fdirectus-labs\u002Fextensions\u002Fissues",5,531739,[172,173],"91db84cf-3097-41d9-8c73-ddbccf5603d5","99efc006-ed7b-445e-954e-69d9fa44ed20",[175,176,177,178],13856,13857,13858,13859,{"version":180,"package":118,"publisher":150,"type":120,"host_version":128,"publish_date":181,"verified":14,"id":182,"url_repository":6,"url_homepage":6,"url_bugs":6,"file_count":138,"unpacked_size":183,"bundled":184,"maintainers":187,"sandbox":14,"sandbox_requested_scopes":6,"license":131},"1.1.1","2025-10-13T10:13:32.006Z","be1f35f1-628d-474a-9822-844040dc5dde",527163,[185,186],"234e4b62-e481-4e43-9104-7e89462ca130","7918380c-b59c-4e4d-8a37-42738339f0c7",[188,189,190,191,192],13181,13182,13183,13184,13185,{"version":194,"package":118,"publisher":135,"type":120,"host_version":128,"publish_date":195,"verified":14,"id":196,"url_repository":6,"url_homepage":6,"url_bugs":6,"file_count":138,"unpacked_size":197,"bundled":198,"maintainers":201,"sandbox":14,"sandbox_requested_scopes":6,"license":131},"1.0.1","2025-04-25T13:48:23.524Z","d7cac31c-7287-45f3-b02e-4d6d055cb8f2",512102,[199,200],"74621ef1-6e4d-487a-8c93-6aafae815a97","dd07fa53-2e62-4a89-994d-006f7883e4cb",[202,203,204],12488,12489,12490,"Migration Bundle","\u003Ch1>Directus Migration Module\u003C\u002Fh1>\n\u003Cp>Migrate the current Directus instance to another location with ease, using this simple module.\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Fdirectus-labs\u002Fextensions\u002Fmain\u002Fpackages\u002Fmigration-bundle\u002Fdocs\u002Fmigration-module.jpg\" alt=\"Migration Module Banner\">\u003C\u002Fp>\n\u003Ch2>Usage\u003C\u002Fh2>\n\u003Cp>Once installed you can enable the navigation menu item in your Project Settings or go straight to the module page at \u003Ccode>\u002Fadmin\u002Fmigration\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Cp>To get started, enter the destination URL and admin token into the fields provided, then click \u003Cstrong>Check\u003C\u002Fstrong>. This will compare both Directus platform and see if they are compatible.\u003C\u002Fp>\n\u003Cp>\u003Cem>Please make sure the destination instance is on the same version and the same database platform as the source instance.\u003C\u002Fem>\u003C\u002Fp>\n\u003Cp>If valid, you can start the \"Dry Run\" migration straight away or customize the migration as required.\u003C\u002Fp>\n\u003Cp>Run the migration by unchecking the Dry Run checkbox and click start. The process runs in the background so you can close your browser and it will notify you when the migration is complete. Normally, a small to medium project will only be a 1 - 2 minutes. Projects will large file libraries will take much longer.\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Fdirectus-labs\u002Fextensions\u002Fmain\u002Fpackages\u002Fmigration-bundle\u002Fdocs\u002Fmigration-module-live-updates.jpg\" alt=\"Migration Live Updates\">\u003C\u002Fp>\n\u003Ch3>Incomatible Schema\u003C\u002Fh3>\n\u003Cp>The destination instance must be the same version and the same database platform as the source instance. This can be overriden using the \u003Cstrong>Force\u003C\u002Fstrong> checkbox which appears when this error occurs.\u003C\u002Fp>\n\u003Cp>This is not recommended and will most likely need further intervention.\u003C\u002Fp>\n\u003Ch3>Failed Migration\u003C\u002Fh3>\n\u003Cp>If the migration fails, don't worry, simply run the migration again. Existing content is skipped so it will continue where it left off.\u003C\u002Fp>\n\u003Ch2>Requirements\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>2x Directus instances on at least 11.1.2+ using the same database platform.\u003C\u002Fli>\n\u003Cli>Admin user and admin token from destination.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cem>For larger projects, migrations naturally use significant bandwidth. Limits have been placed on API calls to ensure the destination is not overwhelmed.\u003C\u002Fem>\u003C\u002Fp>\n\u003Ch2>Installation\u003C\u002Fh2>\n\u003Cp>Refer to the Official Guide for details on installing the extension from the Marketplace or manually.\u003C\u002Fp>\n\u003Ch2>Configuration\u003C\u002Fh2>\n\u003Ch3>Hybrid Configuration System\u003C\u002Fh3>\n\u003Cp>The migration module uses a two-tier configuration system combining environment variables and Directus presets for maximum flexibility.\u003C\u002Fp>\n\u003Ch3>1. Environment Variables (Admin Defaults)\u003C\u002Fh3>\n\u003Cp>Administrators can set default values that apply to all users via environment variables:\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-bash\"># Default destination URL\nMIGRATION_BUNDLE_DEFAULT_URL=https:\u002F\u002Fstage.example.com\n\n# Default admin token (optional - can be left empty for security)\nMIGRATION_BUNDLE_DEFAULT_TOKEN=your-admin-token\n\n# Default selected options (comma-separated)\nMIGRATION_BUNDLE_DEFAULT_OPTIONS=content,users,flows\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Available options for \u003Ccode>MIGRATION_BUNDLE_DEFAULT_OPTIONS\u003C\u002Fcode>:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>content\u003C\u002Fcode> - Collections and their data\u003C\u002Fli>\n\u003Cli>\u003Ccode>users\u003C\u002Fcode> - Users, roles, and permissions\u003C\u002Fli>\n\u003Cli>\u003Ccode>comments\u003C\u002Fcode> - Activity comments\u003C\u002Fli>\n\u003Cli>\u003Ccode>presets\u003C\u002Fcode> - User bookmarks\u003C\u002Fli>\n\u003Cli>\u003Ccode>dashboards\u003C\u002Fcode> - Insights dashboards\u003C\u002Fli>\n\u003Cli>\u003Ccode>extensions\u003C\u002Fcode> - Installed extensions\u003C\u002Fli>\n\u003Cli>\u003Ccode>flows\u003C\u002Fcode> - Automation flows\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>2. Directus Presets (User Configurations)\u003C\u002Fh3>\n\u003Cp>Users can save their migration configurations as Directus presets, which are stored in the database and accessible across sessions and devices.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Features:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Named Configurations\u003C\u002Fstrong>: Save multiple configs like \"Production Sync\", \"Content Only\", \"Full Migration\"\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Scope Control\u003C\u002Fstrong>: Save presets for yourself, your role, or globally (admin only)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Quick Access\u003C\u002Fstrong>: Load saved configurations from a dropdown menu\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Override Defaults\u003C\u002Fstrong>: User presets take precedence over environment defaults\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>How to use:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Col>\n\u003Cli>Configure your migration settings (URL, token, options)\u003C\u002Fli>\n\u003Cli>Click the bookmark icon (📑) to save as a preset\u003C\u002Fli>\n\u003Cli>Choose a name and scope (personal\u002Frole\u002Fglobal)\u003C\u002Fli>\n\u003Cli>Load saved presets from the dropdown above the form\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>3. Configuration Priority\u003C\u002Fh3>\n\u003Cp>The system follows this priority order:\u003C\u002Fp>\n\u003Col>\n\u003Cli>\u003Cstrong>User-selected preset\u003C\u002Fstrong> (highest priority)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Environment defaults\u003C\u002Fstrong> (if no preset selected)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Empty form\u003C\u002Fstrong> (if neither configured)\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>This approach provides:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>For Admins\u003C\u002Fstrong>: Environment-specific defaults across environments\u003C\u002Fli>\n\u003Cli>\u003Cstrong>For Users\u003C\u002Fstrong>: Personal saved configurations\u003C\u002Fli>\n\u003Cli>\u003Cstrong>For Teams\u003C\u002Fstrong>: Shared configurations via role-based presets\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Best Practice\u003C\u002Fstrong>: Consistent setups with flexibility\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2>How to Customize the Migration\u003C\u002Fh2>\n\u003Col>\n\u003Cli>On the migration module, add the destination server and token and click \u003Cstrong>Check\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>If valid, the Migration options field will appear. Click this to reveal what is migrated\u003C\u002Fli>\n\u003Cli>Uncheck any sections to exclude from the migration\u003C\u002Fli>\n\u003Cli>Start the migration\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>File Batch Size\u003C\u002Fh3>\n\u003Cp>When the \u003Cstrong>content\u003C\u002Fstrong> scope is selected, a \u003Cstrong>Batch size\u003C\u002Fstrong> control appears. This controls how many files are read into memory and uploaded before a new batch begins.\u003C\u002Fp>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Value\u003C\u002Fth>\n\u003Cth>Behavior\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>5\u003C\u002Ftd>\n\u003Ctd>Lowest memory usage — best for constrained environments\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Cstrong>10\u003C\u002Fstrong> (default)\u003C\u002Ftd>\n\u003Ctd>Suitable for most projects\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>15\u003C\u002Ftd>\n\u003Ctd>Moderate speed increase\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>20\u003C\u002Ftd>\n\u003Ctd>Faster on high-bandwidth connections\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>25\u003C\u002Ftd>\n\u003Ctd>Maximum throughput — higher memory usage\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Cp>\u003Cstrong>When to adjust:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Lower the batch size\u003C\u002Fstrong> if the migration runs out of memory or the source\u002Fdestination server is under heavy load.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Raise the batch size\u003C\u002Fstrong> if you have a fast connection and want to speed up large file libraries.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Fdirectus-labs\u002Fextensions\u002Fmain\u002Fpackages\u002Fmigration-bundle\u002Fdocs\u002Fmigration-module-customize.jpg\" alt=\"Customise the module\">\u003C\u002Fp>\n\u003Ch2>Permissions\u003C\u002Fh2>\n\u003Cp>This extension requires admin privilages on both instances to ensure all data is accessible and writable.\u003C\u002Fp>\n","https:\u002F\u002Fraw.githubusercontent.com\u002Fdirectus-labs\u002Fextensions\u002Fmain\u002Fpackages\u002Fmigration-bundle\u002Fdocs\u002Fmigration-module.jpg",[207,209,210],"https:\u002F\u002Fraw.githubusercontent.com\u002Fdirectus-labs\u002Fextensions\u002Fmain\u002Fpackages\u002Fmigration-bundle\u002Fdocs\u002Fmigration-module-live-updates.jpg","https:\u002F\u002Fraw.githubusercontent.com\u002Fdirectus-labs\u002Fextensions\u002Fmain\u002Fpackages\u002Fmigration-bundle\u002Fdocs\u002Fmigration-module-customize.jpg"]