Migrating customers from eZ Platform and Ibexa
This page is for hosting companies whose customers run a Symfony-based site on eZ Platform 1.x to 3.x or Ibexa DXP or OSS 3.3 to 5.0, and want to move to an Exponential product on the host's platform. It answers: which destinations exist, what each one needs from your servers, and how to assess the job before you offer it. The steps themselves are in Chapter 16.
Contents
- Two destinations
- What each destination needs from the host
- Choosing with the customer
- Assessment
- Phases
- Hosting both during a transition
Two destinations
From 16.1:
| Path A: Exponential Platform Nexus | Path B: Exponential 6.0 (alone or as Exponential Platform Legacy) | |
|---|---|---|
| What it is | "the like-for-like path: the same Symfony stack, the same database schema generation and the same PHP namespaces, with the packages swapped for the se7enxweb forks" | the legacy kernel of this repository; content moves to the INI and TPL world |
| Effort | the lowest risk: "same generation, a package swap" | the highest effort: "a data and template migration" |
| Custom Symfony bundles and Twig | kept | rewritten as legacy extensions and TPL templates |
Rules of thumb from 16.2: same generation first; path B is "a rewrite of the presentation and of custom code, not of the content"; and do not mix the paths in one cut-over.
What each destination needs from the host
| Path A (Symfony platform) | Path B (Exponential 6.0) | |
|---|---|---|
| PHP | depends on the Nexus line chosen; chapter 16 lists the PHP of each | 8.0 to 8.5 (Velocity included) |
| Web server | a Symfony front controller under Apache or nginx with PHP-FPM | Velocity, FrankenPHP, or Apache/nginx with PHP-FPM (Choosing a web server) |
| Database | as the source platform used | the six of Exponential, in order: SQLite 3, PostgreSQL, MongoDB, MariaDB, Oracle, MySQL |
| Search | as the source platform used | see Search backends |
| Shell and Composer | required | recommended (Composer and Git on servers) |
Note
The hosting pages of this section describe Exponential 6.0. For a path A site, read the requirements of the Exponential Platform line chosen in chapter 16 and its repository; do not assume the 6.0 requirements apply.
Choosing with the customer
Questions that decide the path, from chapter 16's table:
- Does the site have custom Symfony bundles, Twig templates, REST or GraphQL clients the customer wants to keep? Then path A.
- Does it use RichText content or Page Builder landing pages? Path A keeps RichText; Page Builder has no equivalent in either path and is rebuilt with Exponential Layouts, on Nexus (A) or in the legacy kernel (B).
- Does the customer's team know INI, TPL and legacy extensions? Then path B is familiar ground.
- Is lowest risk for a live site the priority? Then path A, same generation.
Assessment
What to collect before an offer (16.4):
| Item | Why |
|---|---|
| Source product and exact version | decides the generation and the Nexus line |
composer.json and composer.lock | the packages to swap or replace |
| Custom bundles, templates and their size | the main effort driver |
| Field types in use, especially those without a counterpart on the target | data conversion work |
| Size of the content tables | decides the database and reindex time |
| Search engine in use | must be provided on your side |
Chapter 16 names the three numbers that drive the duration: "the number of custom bundles and templates, the number of fields of types without a counterpart on the target, and the size of the content tables" (16.10). Measure the last one with a full dry run on a copy.
Phases
| Phase | Host's part |
|---|---|
| 1. Inventory and decision | collect the items above; agree the path with the customer |
| 2. Source to the last release of its line | usually on the customer's current host |
| 3. Code | a staging server on your platform with the target's stack |
| 4. Data | the database copy on your staging server |
| 5. Timed dry run | your staging server; write down every duration |
| 6. Freeze, cut-over, verification | maintenance window; checks of 16.8 |
| 7. Decision window, then cleanup | keep the rollback (16.9) for the agreed time |
Hosting both during a transition
Some Exponential Platform lines and Exponential Platform Legacy run the legacy kernel and a Symfony stack on one database (16.2, last row). For a host that means one site with two front controllers and one database; size and monitor it as one site with the needs of both.
Related pages
- Migrating customers to your hosting
- From older Exponential versions
- Chapter 17: Migration reference
- Free documentation: this page is free to copy, translate and improve under the GNU FDL 1.3.
Become an Exponential Partner
Partners share their information, provide funding, contribute back and develop the products with us, and that is how Exponential grows. A partner website and dashboard are planned for mid-2027: please become a partner today to speed up our growth rate and land new features faster.