Skip to content

feat(site-migrator): CLIで特定ページ・特定ディレクトリ配下のみを移行対象にできるようにする #967

Description

@YusukeHirao

背景

現状 dz-migrate <archive.nitpicker> -o <dir> はアーカイブ内の内部ページ・リソースを
listInternalPages / listInternalResources で全件列挙し、丸ごと移行する。
(migrate.ts 内で対象を絞り込む手段はなく、--limit / --extract-limit は並列数の制御のみ)

大規模サイトの一部だけ先行移行したい、特定ページのみ再実行したい、といったユースケースに対応できない。

要望

CLI に対象ページを絞り込むオプションを追加する:

  • 特定ページ(単一 URL / pathname)を指定して移行
  • 特定ディレクトリ配下(pathname prefix)を指定して移行

実装方針の叩き台

プログラマティック API 側は extractPages / downloadResourcesitems: { url }[]
受け取る設計なので、呼び出し側で listInternalPages の結果を絞り込んで渡せば既に部分実行は可能。
CLI 側に絞り込み引数(例: --include <path-prefix>)を追加し、migrate() に渡す前に
pageItems / resourceItems をフィルタする対応が必要。

検討事項

  • 複数ディレクトリ/複数パスの同時指定を許すか
  • アセット(リソース)側もフィルタするか。ページだけ絞るとアセット参照は保持されるが、
    逆に絞ると参照切れが起きうるため要検討
  • assignPageIds はセクション単位で アーカイブ全体の URL 一覧 から id を採番する設計のため、
    部分実行すると同じ URL でも id が変わり得る。部分移行と id の安定性の両立が論点になる

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions