- Knownframe
- CookDex
- Docs
- v2026.9.1
- Backup and cleanup tasks
Backup and cleanup tasks
Backing up Mealie before changes, and merging duplicate entries. Live runs of other tasks can make their own backup first; see Safety policies.
mealie-backup
Section titled “mealie-backup”| Option | Type | Default | Description |
|---|---|---|---|
keep |
integer | unset | After creating a backup, prune older backups and keep only this many. |
prune_only |
boolean | false |
Skip backup creation and only prune old backups. Requires keep. |
cleanup-duplicates
Section titled “cleanup-duplicates”| Option | Type | Default | Description |
|---|---|---|---|
dry_run |
boolean | true |
Preview merges without writing anything. |
backup_first |
boolean | false |
Create a Mealie backup before a live run. Hidden while dry_run=true. |
target |
string | both |
Deduplicate both (foods and units), foods, units, taxonomy (tags and categories), tags, or categories. |
Tags and categories are merged through Mealie’s POST /organizers/tags/merge and POST /organizers/categories/merge routes (Mealie v3.25+). Mealie moves every recipe from the duplicate to the kept entry and deletes the duplicate. Mealie does not update cookbook filters that name the duplicate, so CookDex repoints those cookbooks at the kept entry. The kept entry is the one used by the most recipes. Matching is conservative: names must differ only by case, spacing, punctuation, accents, & vs and, or a plural ending on the last word whose singular also exists (for example Gluten-Free / gluten free, or Cookie / Cookies). On an older Mealie the merge routes are missing; the run reports this and skips those merges without failing. If a merged-away name is still listed in your taxonomy config, update the config so taxonomy-refresh does not create it again.