Skip to content

【システム】データメンテナンスの復元をコマンドから実行できるようにしてほしい #4527

Description

@kaburk

概要

UtilitiesService::restoreDb() はアップロードされたファイル($_FILES 形式の配列)を
前提にしているため、管理画面からしか復元できません。

バックアップ側は bin/cake bc_utility backup_db 相当がありませんが、
少なくとも復元だけでもコマンドから実行できると、次の場面で助かります。

  • 大きなバックアップの復元(アップロードサイズ上限・実行時間上限に当たる)
  • 4系→5系の移行作業で、変換と復元を繰り返して手順を固める
  • ステージング環境の再構築を自動化する

baserCMS version : 5.4.0

TODO

  • restoreDb() のファイル受け取りをパス指定でも可能にする
    (現状の $_FILES 形式は維持しつつ、文字列パスも受け付ける)
  • bin/cake bc_utility restore_db <zip> 相当のコマンドを追加する

備考

移行作業では、中核である _loadBackup()(zip内の *Schema.php を drop → create し
CSV を投入する)をリフレクションで直接呼ぶスクリプトを書いて回避しました。
restoreDb() と同じ順序で updateSequence とキャッシュクリアも実行しています。

protected メソッドに依存しているので、正攻法ではありません。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions