2020/5/27
Tag : craft-cms
Craft CMS でエントリを削除した時の Soft Delete 周りを確認してみた
Craft CMS でエントリを削除すると Soft Delete として扱われる。
先日削除周りのことを色々やっているときに @BUN @tinybeans に色々教えてもらった。
削除すると Soft Delete になって Garbage Collection のタイミングで削除される。
Soft Deletes | Craft 3 Documentation
https://docs.craftcms.com/v3/e…
Garbage Collection が実行されるのはサイトを訪問したり、管理画面を操作してる時らしく、どの頻度(確率)で実行されるかは config/app.php で設定ができる。
return [
'components' => [
'gc' => [
'probability' => 0, // no chance
'probability' => 1, // 1 in 1,000,000
'probability' => 10, // 1 in 100,000 (default)
'probability' => 100, // 1 in 10,000
'probability' => 1000, // 1 in 1,000
'probability' => 10000, // 1 in 100
],
],
];
Soft Delete になってから softDeleteDuration で指定した間は Garbage Collection では削除されない。
Garbage Collection をコマンドとかで実行する時は
$ ./craft gc
Delete all trashed items? (yes|no) [no]:no
こんな感じで実行される。
デフォルトの no を選ぶと softDeleteDuration の間のものは削除されない。
Yes にすると全て削除される。
これは以下も同様で、 softDeleteDuration の状況をみずに削除される。
./craft gc --delete-all-trashed=1
./craft gc --interactive=0
デフォルトは 30 日で、 softDeleteDuration を 0 にすると削除されなくなる。