Wodby CLI

wodby migrate wodby1 server

Preview, apply, or verify every app migration from a Wodby 1 server

Migrate every application hosted on one Wodby 1 server. The default command is a read-only preview; --apply performs the resumable migrations and --verify validates them after testing and DNS cutover. Each application has an isolated resume-state file and is processed sequentially. Runtime failures are reported per app while remaining apps continue. A shared --target-git-integration-id searches that integration for every source repository by name; use --target-repository-map for per-app integrations or repository-name overrides. A missing repository match falls back to unlinked Custom CI. Use --skip-code only to omit code migration intentionally. By default, the newest successful file for each required backup component is selected. Use repeatable --source-backup APP/INSTANCE=BACKUP_UUID values to override individual snapshots, or --skip-data to omit data. Changes after each selected backup completed are not migrated. Test the migrated apps before changing DNS, then use --verify. When per-app state exists, --apply preserves the aggregate saved plan and continues completed work; --apply --restart replaces the saved plan after showing and confirming removal of only resources recorded as created by these migrations. Pre-existing target apps and reused resources are preserved. Restart is refused after successful verification or while any target operation remains ambiguous. --rollback deletes the Wodby 2 resources this migration created and discards its state; it refuses once --verify has succeeded, because DNS then points at Wodby 2.

Usage

wodby migrate wodby1 server SOURCE_SERVER_UUID [flags]

Examples

export WODBY1_SOURCE_TOKEN=...
  export WODBY_API_KEY=...

  wodby migrate wodby1 server SERVER_UUID --target-cluster CLUSTER [target and mapping options]
  wodby migrate wodby1 server SERVER_UUID --target-cluster CLUSTER [same options] --apply
  wodby migrate wodby1 server SERVER_UUID --target-cluster CLUSTER [same options] --verify

Options

Flag Description Default
--add-missing-services Add mapped services missing from the target stack when an exact Wodby 2 service is available true
--allow-unsupported-drupal Allow Drupal 8/9 when the nginx preset does not identify Drupal 10 or newer and you have independently confirmed the application was upgraded false
--apply Create the target and import data using the displayed plan false
--exclude-app stringArray Exclude an app by exact UUID or name (repeatable) []
--exclude-instance stringArray Exclude an instance by UUID or APP/INSTANCE (repeatable) []
-h, --help help for server false
-o, --output string Output format: text or json text
--poll-interval duration Target operation polling interval 2s
--restart Replace the saved plan, safely removing migration-created target resources first when necessary (requires --apply) false
--retry-ambiguous string Retry exactly one inspected ambiguous operation ID -
--rollback Delete the Wodby 2 resources this migration created and discard its resume state false
--skip-code Intentionally omit repository/build-source migration false
--skip-data Intentionally omit database and files imports false
--source-backup stringArray Select a successful backup by APP/INSTANCE=BACKUP_UUID or INSTANCE_UUID=BACKUP_UUID (repeatable) []
--source-base-url string Wodby 1 API base URL https://api.wodby.com
--source-token string Wodby 1 API token (defaults to WODBY1_SOURCE_TOKEN) -
--state-file string Base path for secure per-app resume-state files (defaults to the system temporary directory) -
--target-ci-integration-id int Wodby 2 CI integration ID override (otherwise Wodby CI with a linked repository, or automatic Custom CI fallback) 0
--target-cluster string Wodby 2 cluster ID or exact name -
--target-code-service string Target connect-build service name when the stack has more than one -
--target-env-map stringArray Source-to-target environment mapping (SOURCE=TARGET) []
--target-git-integration-id int Optional Wodby 2 Git integration ID used to find and link the source repository 0
--target-git-ref string Git branch, tag, or commit to build (defaults to the source ref) -
--target-git-ref-type string Git ref type: branch, tag, or commit -
--target-import-map stringArray Backup-to-import mapping ([APP/][INSTANCE/]COMPONENT=SERVICE:IMPORT) []
--target-project string Wodby 2 project ID or exact name (defaults to a project-owned cluster's owner; otherwise organization-owned) -
--target-repository-map stringArray Per-app Git target (APP=GIT_INTEGRATION_ID[:REPOSITORY_NAME[:SERVICE]]) []
--target-repository-name string Exact repository name in the selected Wodby 2 Git integration (defaults to the name derived from the Wodby 1 repository URL) -
--target-service-map stringArray Source-to-target service mapping ([APP/][INSTANCE/]SOURCE=TARGET) []
--target-stack-id int Existing Wodby 2 stack ID override (managed Drupal/WordPress apps get a new catalog stack by default) 0
--target-stack-map stringArray Source-to-target stack ID mapping ([APP/][INSTANCE/]SOURCE=TARGET_STACK_ID) []
--target-version-map stringArray Source-service version override ([APP/][INSTANCE/]SOURCE_SERVICE=TARGET_VERSION) []
--verify Verify the applied migration after testing and DNS cutover false
--wait-timeout duration Timeout for each target operation 30m0s
-y, --yes Approve a new migration plan without an interactive prompt false

Options inherited from parent commands

Flag Description Default
--access-token string Access token -
--api-base-url string Public REST API base URL https://apiv2.wodby.com/v1
--api-key string API key -
--ci-config-path string Path to CI config /tmp/.wodby-ci.json
--verbose Verbose output false

See also

wodby migrate wodby1