Issue During Redactor to CKEditor Conversion – Data Not Migrating for All Fields
Nobody has claimed this yet.
- Dominant language
- PHP
- Stars
- 47
- Forks
- 32
- PR merge metrics
- No merged PRs in 30d
Description
Description
I recently upgraded from Craft CMS 3 to Craft CMS 4 and installed the CKEditor plugin to replace Redactor. After installation, I ran the CLI command:
ddev php craft ckeditor/convert/redactor
The command appeared to run successfully, but I noticed several issues:
- On the homepage, I have two Redactor fields. After converting to CKEditor, only one had its content successfully migrated to CKEditor. The second field was converted structurally, but the content was missing.
- For Redactor fields inside Neo field layouts, the fields are converted to CKEditor, but no data is transferred—they appear empty post-conversion.
Steps to Reproduce:
- Upgrade a Craft 3 project with Redactor fields (including within Neo fields) to Craft 4.
- Install the CKEditor plugin.
- Run
php craft ckeditor/convert/redactor. - Check converted entries, especially those with multiple Redactor fields or Redactor fields inside Neo.
Expected Behavior:
- All Redactor content should be migrated, regardless of field count or nesting (e.g., Neo).
Actual Behavior:
- Only one top-level Redactor field per entry is converted properly.
- Redactor fields inside Neo blocks are not migrated (structure converts, but data is missing).
Additional info
- Craft version: 4.16.2
- PHP version: 8.2
- Database driver & version: 8.0 MYSQL
- Plugins & versions: Ckeditor 3.12.0 and Redactor 3.1.0
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by running ddev php craft ckeditor/convert/redactor against a Craft 3-to-4 project containing multiple top-level Redactor fields and Redactor fields inside Neo layouts. Trace the conversion entry point and compare the migrated field content with the original entries. Done means every Redactor field retains its content after conversion, including nested Neo fields.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- mysql, php
- Domain
- backend, database
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100