beta

Netlify CMSのeditorial_workflowで間違ってsave済みの編集画面を消してしまった時の対応

editorial_workflowにしているNetlify CMSで、間違ってsave済みの編集画面を消してしまった(記事はあるのにCMSの一覧に出ない = ゴースト化)時に復旧させる方法です。

公開日:2020年1月10日

記事がゴースト化してしまったときは焦りますが、まずは、Netlify CMSが裏側でやっていることを理解するのが先決です。理解していれば、焦らずしっかりと対応ができます。

editorial_workflowのsaveはレポジトリに残っている

Netlify CMSのeditorial_workflowのデータの保存方法は、

  • save => 保存。ブランチを切って記事を保存する
  • status変更 => 本番ブランチにpull requestを送る
  • publish => 公開。pull requestをマージして、記事用に切ったブランチを削除する

という流れになっています。

つまり、saveしていない記事は復元できませんが、きちんとsaveした記事については必ずレポジトリのどこかにデータが保存されています。

Githubのレポジトリから復旧しよう

記事の公開前に、間違ってブラウザを閉じてしまったりしてNetlify CMSの一覧から編集できなくなったゴースト記事は、Githubの対象レポジトリから対処すれば公開状態に戻せます。

  • save状態の時 => ブランチが切られているはずなのでpull requestを送って、mergeする
  • status=readyの時 => pull requestがあるはずなので、それをmergeする

どちらもGithubのブラウザ画面から簡単に操作できます。

面倒なのは、publishをミスってしまった時で、このときは

  • pull requestがmergeされてる => 公開済みなはず
  • pull requestがmergeされない => mergeすればOK

となります。

ここら辺は、うまく処理をしないとgitのHEADがずれてしまうので、どういう状況かを確認しつつ、記事の復旧をしてから新規の作業をしましょう。

ゴースト化した記事をそのままにして新規の記事を作成すると、このpull requestがmergeできなくな会ってしまうケースもあるので要注意です。


Netlify CMSのeditorial_workflowで間違ってsave済みの編集画面を消してしまった時の対応をまとめました。

Netlify CMSは、GithubなどのレポジトリサイトのAPIでデータを処理している関係で、どうしてもデータなどに不具合が出やすいですが、裏側の流れを理解しておくことで、何かあった時も対処しやすくなります。