Customize & upgrade
Most customized admin templates drift away from upstream after the first real project — once you’ve hand-edited the core, you can’t take updates without painful merges. StackRivet is built so customization stays upgradeable.
Customize through modules, not the core
Section titled “Customize through modules, not the core”The safe way to extend StackRivet:
- Generate or hand-write business modules rather than editing core modules in place. Each module is self-contained and declares a module manifest (name, version, menus, permissions, dictionaries, migrations, AI rules).
- Add tables through Flyway migrations inside your module — never manual schema edits.
- Extend, don’t fork. Add a token to
tokens.scss, register a permission in the manifest, contribute aDataScopeTableContributor— use the extension points instead of rewriting the core.
Generated files carry template metadata and file hashes, and the generator won’t overwrite a file you’ve modified without explicit confirmation. That metadata is what lets an upgrade tell “untouched generated file” apart from “you changed this.”
How upgrading works
Section titled “How upgrading works”Community ships the building blocks of a clean upgrade:
- Version migration notes describing what changed.
- Database migration scripts (Flyway) for the schema deltas.
- A breaking-change list per release.
Because your customization lives in your own modules and is tracked by the manifest, migrations and file hashes, an upgrade is a diff against those — not a blind merge into edited core files.
Upgrade assistant (Pro / Enterprise)
Section titled “Upgrade assistant (Pro / Enterprise)”The paid tiers automate the diff:
- Pro — local version detection, configuration-diff detection, a customization-diff scan, basic OpenRewrite recipes and an upgrade report.
- Enterprise — full OpenRewrite recipes and upgrade-PR generation that turns framework, template and API migrations into an applyable pull request.
See the pricing page. Migrations from RuoYi / JEECG and legacy systems are offered as a service.
Upgrade principle
Section titled “Upgrade principle”Keep the engine upstream and your value in your modules. The module manifest, migrations, template metadata and file hashes are what make “customized and upgradeable” possible at the same time.