RockMigrations Reference
RockMigrations provides version-controlled migrations for ProcessWire CMS. All migrations define fields, templates, roles, permissions, and pages via PHP code.
File Locations
| Type |
Location |
| Config migrations |
site/RockMigrations/{fields,templates,roles,permissions}/[name].php |
| Site migrations |
site/modules/Site/Site.migrate.php |
| Module source |
site/modules/RockMigrations/RockMigrations.module.php |
Execution
# Run all migrations via ddev
ddev php site/modules/RockMigrations/migrate.php
Migrations also auto-run on module refresh in the ProcessWire backend.
Quick Start — Config Field Migration
// site/RockMigrations/fields/myfield.php
<?php namespace ProcessWire;
return [
'type' => 'text',
'label' => 'My Field Label',
'tags' => 'mytag',
];
Tips
- Prefer config migrations over inline API calls for maintainability
- One file per asset — easier to track changes in git
- Use tags to organize fields/templates by module or feature
- Check existing patterns in
site/RockMigrations/ for project conventions
- For undocumented methods, explore
site/modules/RockMigrations/RockMigrations.module.php
Reference Files
- Config migrations — field types, template definitions, roles, permissions, and common patterns
- Config migration hooks — execution order, circular dependencies, module dependency installation
- API methods — direct API via
Site.migrate.php: createField, createTemplate, createPage, combined migrations, module installation
- MagicPages — lifecycle hooks, Magic Methods, Magic Field Methods, Magic Assets, trait utilities
- init() and ready() — attaching hooks directly in PageClasses instead of ready.php
Converted and distributed by TomeVault — claim your Tome and manage your conversions.
1---2name: processwire-rockmigrations3description: Creates and manages ProcessWire schema migrations via RockMigrations — fields, templates, roles, permissions, pages, and modules. Supports config migrations, direct API methods, MagicPages, and PageClass lifecycle hooks (onCreate, onAdded, onSaved). Use when creating or modifying fields, templates, roles, permissions, running migrations, setting up access control, or working with MagicPage and PageClass hooks in ProcessWire.4---56# RockMigrations Reference78RockMigrations provides version-controlled migrations for ProcessWire CMS. All migrations define fields, templates, roles, permissions, and pages via PHP code.910## File Locations1112| Type | Location |13|------|----------|14| Config migrations | `site/RockMigrations/{fields,templates,roles,permissions}/[name].php` |15| Site migrations | `site/modules/Site/Site.migrate.php` |16| Module source | `site/modules/RockMigrations/RockMigrations.module.php` |1718## Execution1920```bash21# Run all migrations via ddev22ddev php site/modules/RockMigrations/migrate.php23```2425Migrations also auto-run on module refresh in the ProcessWire backend.2627## Quick Start — Config Field Migration2829```php30// site/RockMigrations/fields/myfield.php31<?php namespace ProcessWire;3233return [34 'type' => 'text',35 'label' => 'My Field Label',36 'tags' => 'mytag',37];38```3940## Tips41421. **Prefer config migrations** over inline API calls for maintainability432. **One file per asset** — easier to track changes in git443. **Use tags** to organize fields/templates by module or feature454. **Check existing patterns** in `site/RockMigrations/` for project conventions465. **For undocumented methods**, explore `site/modules/RockMigrations/RockMigrations.module.php`4748## Reference Files4950- [Config migrations](config-migrations.md) — field types, template definitions, roles, permissions, and common patterns51- [Config migration hooks](config-migration-hooks.md) — execution order, circular dependencies, module dependency installation52- [API methods](api-methods.md) — direct API via `Site.migrate.php`: createField, createTemplate, createPage, combined migrations, module installation53- [MagicPages](magic-pages.md) — lifecycle hooks, Magic Methods, Magic Field Methods, Magic Assets, trait utilities54- [init() and ready()](init-ready.md) — attaching hooks directly in PageClasses instead of ready.php5556---57> Converted and distributed by [TomeVault](https://tomevault.io/claim/gebeer) — claim your Tome and manage your conversions.58<!-- tomevault:4.0:skill_md:2026-04-13 -->