Skip to content

Clarify partial data transfer behavior and restructure the transfer page - #3385

Open
pwizla wants to merge 13 commits into
mainfrom
repo/data-transfer-docs-fixes-and-ux
Open

Clarify partial data transfer behavior and restructure the transfer page#3385
pwizla wants to merge 13 commits into
mainfrom
repo/data-transfer-docs-fixes-and-ux

Conversation

@pwizla

@pwizla pwizla commented Aug 21, 2026

Copy link
Copy Markdown
Collaborator

This PR documents the partial data-transfer behavior clarified in strapi/strapi#27322 (stages omitted via --only or --exclude preserve destination data, transferred stages are replaced), fixes the factual errors found while reviewing that content, and restructures the transfer page around it. Supersedes #3376.

  • Replaces the stage-filtering matrix with one aligned on the upstream engine matrix, and adds the missing --exclude media-library row
  • Warns that --exclude files only skips the assets stage, so media library records still transfer with content and can point at binaries that were never transferred
  • Corrects the two quoted CLI confirmation prompts to match the strings in command.ts, and scopes the --force caution to the stages actually transferred
  • Fixes a contradictory warning on the import page, which claimed excluded types are deleted on the target instance
  • Reorders the transfer page so the preserve-versus-replace semantics come before the --only and --exclude syntax they govern, merges the two near-duplicate option sections, and adds the media-library value their prose omitted
  • Extracts the 120-line local walkthrough to a new "Test a data transfer locally" page, and moves the nginx and localhost notes into a Troubleshooting section
  • Adds a section for --throttle, --no-checksums and --verbose, which existed only as option-table rows, and syncs the transfer option table in the CLI reference
  • Records the stage-filtering mistakes in the inki known-pitfalls catalog, and documents badge placement for headings versus inline usage

Blocked until Strapi 5.52.2 ships, since strapi/strapi#27322 is milestoned for that release.

Documents #27322

Direct preview link 👉 here

github-actions Bot and others added 8 commits August 20, 2026 02:02
Add documentation explaining how --only and --exclude filters work with
data transfer stages (content, files, config). Clarifies that omitted
stages preserve destination data and documents the content-replace-keep-config
workflow with a stage transfer matrix.

Related to strapi/strapi#27322
The matrix contradicted the upstream engine matrix in strapi/strapi#27322 on
--exclude files, omitted the --exclude media-library row, and claimed nothing is
preserved by default. Media library records travel with content, so excluding
files leaves records pointing at untransferred binaries. Also corrects the two
quoted CLI prompts to match command.ts and scopes the --force caution to the
stages actually transferred.
The warning claimed excluded types are deleted in the target instance, the
opposite of the transfer page. Verified that import and transfer share the same
parseRestoreFromOptions call, so the semantics are identical: omitted stages are
preserved.
Adds the --throttle, --no-checksums and --verbose rows that were missing from
the strapi transfer table, and harmonizes the --exclude-content-types wording
across the export, import and transfer tables.
Four entries derived from the review of this PR, each verified against
parseRestoreFromOptions, TransferGroupPresets and expandMediaLibraryPreset:
the files preset covers binaries only while media library records ride the
content stage, the default command always preserves admin and ignored types,
omitted stages are preserved rather than deleted across import and transfer,
and the quoted CLI confirmation prompts must be checked against command.ts.
The walkthrough was 121 of the transfer page's 498 lines and teaches
create-strapi-app and git rather than the transfer command, which the page
itself says is not meant for two local instances. It also duplicated the
Generate a transfer token section. Linked from the transfer page with a doc
card and wired into the pagination chain.
Reorders the sections so the preserve-versus-replace semantics come before the
--only and --exclude syntax they govern, removing a forward reference. Merges
the two near-duplicate option sections and adds the media-library value their
prose omitted. Reduces the stage-filtering section to a single table with the
media caveat promoted above it. Moves the nginx and localhost notes into a
Troubleshooting section, and adds a section for --throttle, --no-checksums and
--verbose, which existed only as table rows.
The noTooltip rule lumped headings together with tables, which led agents to
suppress the tooltip under a heading where it belongs. Adds a placement section
distinguishing the two cases: own line under a heading with the tooltip kept,
versus same line as the content with noTooltip and the version stated in prose.
@pwizla pwizla added the flag: merge pending release Waiting for the related product PR to be merged before merging this documentation PR label Aug 21, 2026
@strapi-cla

Copy link
Copy Markdown

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.
1 out of 2 committers have signed the CLA.

✅ pwizla
❌ github-actions[bot]
You have signed the CLA already but the status is still pending? Let us recheck it.

@vercel

vercel Bot commented Aug 21, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
documentation Ready Ready Preview Aug 21, 2026 4:05pm

Request Review

@github-actions github-actions Bot added the internal PRs created by the Strapi core team label Aug 21, 2026
An inline badge parked at the start of the line reads as a heading badge. Show
it inside the sentence instead, which also carries the version in the prose now
that noTooltip removes the tooltip.
@github-actions github-actions Bot added pr: new content PRs for new product features or new documentation sections source: repo PRs/issues not targeting a specific documentation but rather affecting the whole repo labels Aug 21, 2026
pwizla added 2 commits August 21, 2026 17:48
"On its own line" could be read as one badge per line, which the chained plan
and version example already contradicted. States that the line under a heading
is a shared slot: all badges go on it, space-separated, never stacked.
Trimming the intro tip dropped the list of role-based token permissions (view,
create, read, regenerate, delete). The Generate a transfer token section never
covered them, so the information was lost rather than deduplicated. Moved it
there, where a reader asking who can manage tokens will look.
pwizla added 2 commits August 21, 2026 18:04
The content-type transfer filters were documented as available since 5.50.3,
but no such release exists: the 5.50.x line stops at 5.50.2. The filters shipped
in 5.51.0 (strapi/strapi#26915), and the Knex connection-function types landed
in the same release (#26949), so database.md carried the same wrong version.
STRAPI_DISABLE_REMOTE_DATA_TRANSFER no longer works in Strapi 5: the admin
service logs "no longer supported" and reads server.transfer.remote.enabled
instead. The page was teaching a method that has no effect. Also drops --throttle
from the tuning section, since upstream marks it hideHelp() as deliberately
undocumented, scopes assetIdleTimeoutMs to pulls with its real default, restores
pagination to draft-and-publish, and applies the review's smaller fixes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

flag: merge pending release Waiting for the related product PR to be merged before merging this documentation PR internal PRs created by the Strapi core team pr: new content PRs for new product features or new documentation sections source: repo PRs/issues not targeting a specific documentation but rather affecting the whole repo

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants