Skip to content

Settings reference

Every field on /app/migrator-settings.

Editable by System Manager and Hydra Admin. Hydra User cannot open this page.

Git Configuration

FieldTypeDescription
GitHub PATPassword (stored encrypted)GitHub Fine-Grained Personal Access Token with contents:write + pull_requests:write scopes
Remote NameDataGit remote name. upstream for apps installed via bench get-app, origin for cloned repos
Remote URLDataEdit to override; leave blank to auto-detect from the target app's git config
Test ConnectionButtonValidates the PAT against the configured remote
Connection StatusHTMLLive render of the most recent test result

Target Configuration

FieldTypeDescription
Target AppSelect (from installed apps)The app where customisation JSON files will be written
Base BranchSelect (from remote branches)The branch your PRs merge into. Common: develop, main, staging

Initialize Git Repository

If the Target App has no .git directory (common in Docker), an Initialize Git Repository button appears under the Target App field. Fill in Remote URL first, then click. Your existing files aren't touched.

DocType Configuration

The Migrator DocTypes child table controls what types appear in the sidebar tree on /app/custom_migrator.

ColumnTypeDescription
Document TypeLink → DocTypeThe DocType name (e.g. Custom Field, Print Format)
FiltersSmall Text (JSON)Optional dict passed to frappe.get_all(). Leave blank for "everything"
EnabledCheckWhether this type appears in the sidebar tree
Is DefaultCheckMarks the rows that came preconfigured. Leave this off on your own additions
Label FieldDataOptional field name to use as the human label in the items list, instead of name

Defaults you start with

You start with eight DocTypes preconfigured. They survive bench migrate upgrades.

DocTypeFilter
DocType{"custom": 1}
Custom Field{"is_system_generated": 0}
Property Setter{"is_system_generated": 0}
Client Script
Server Script
Workflow
Workflow State
Notification

Filter examples

The two filters that ship preconfigured:

json
{ "custom": 1 }
{ "is_system_generated": 0 }

Anything frappe.get_all() accepts works. Invalid JSON silently shows zero rows for that type.

Adding a tracked DocType

Migrator Settings → DocType Configuration table → Add Row
Fill Document Type (and optionally Filters)

Leave Enabled ticked. Leave Is Default off.

Save

Appears in the sidebar tree on next page load.

Migration Log →