Known Issues When Upgrading from Drupal 6 or 7 to Drupal 8
Drupal 6 to 8
Aggregator Categories
Drupal 8 no longer has the concept of aggregator categories, so they are not migrated to Drupal 8.
Allowed Protocols
Drupal 8 now stores protocols in the "filter_protocols" container parameter. If you modified the filter_allowed_protocols
variable, enter it in the services.yml
file.
Allowed Taxonomy Term Reference Vocabularies
This setting is not migrated and all vocabularies are referenceable in Drupal 8. You can manually edit the field settings after the upgrade to restrict vocabularies.
[Fixed] Date Formats
Only default formats (short, medium, long) are migrated. Others must be manually reconfigured after migration.
Missing Fields in Edit or View Pages
Migrated fields might be hidden. Check "Manage form display" and "Manage display" tabs to make them visible.
Homepage Loads with Broken Theme
Sometimes the homepage appears broken after migration. Visiting /user
and returning to the homepage may fix it.
Menu UI
menu_primary_links_source
and menu_secondary_links_source
variables are not migrated as Drupal 8 lacks equivalents.
Modules and Themes
Enable all required modules and themes, including admin theme, before starting migration.
Node Content Types
Story and Page (D6) → Article and Basic Page (D8). Page is mapped; Story is newly created. Consider removing unused content types.
Node Translations
D6/7 translations as separate nodes → D8 merged. May break some links. Revisions of translations are not migrated yet.
Profile Categories
Grouped fields in D6 Profile are not grouped in D8.
Profile Field (Select List)
Allowed values become a combination of all selected values and allowed values in D6.
Statistics
Access log and statistics settings are not migrated. Fixed from D8.5.2 for i18n stats.
Text/Input Formats
Unrecognized formats are mapped to filter_null
, hiding content. Includes PHP code filter.
- Install compatible filter modules.
- Re-save formats or content with a valid input format.
Timezones and Dates
D6 uses offset, D8 uses timezone name. DST may cause shifted dates. Can break paths and URLs. See issue #2926421.
URL Aliases
Language must be enabled in D8 to make aliases work.
Views
Views are not migrated. Rebuild manually. See module "Views Migration".
User Activity Block Settings
Not migrated. Reconfigure manually via Views UI.
Drupal 7 to 8
[Fixed] Allowed Taxonomy Term Vocabularies
Not migrated. Must be reconfigured post-upgrade. See issue #2763637.
Blocked IP Addresses
id
column from ban_ip
table not migrated.
Comment Types
D7 comment fields per content type → D8 creates separate comment types per content type.
- D8 Article gets two comment fields: one default, one migrated. Remove the unused one before migration.
PHP Code
Same issue as Text Formats. Avoid using it. Use the PHP module if required.
Plain Text Fields
D7 allowed varied text handling per instance → D8 does not. Migration skips conflicting fields. Harmonize formats or split fields.
Long Text with Summary
Same issue as Plain Text Fields. Fields skipped if formatting is inconsistent. Options: harmonize format or custom migration.
Statistics
Same i18n issues as in D6. Fixed in D8.5.2.
Views
Not migrated. Manual recreation needed. Use Views Migration module for help.
Potential ID Conflicts (from D6 or D7 to D8)
Issue
D8 site must be empty before migration. Existing content can cause ID conflicts and data loss.
Scenarios
- D8 site already used before migration.
- Post-migration changes on either site.
- Modules auto-create data (e.g., forum terms).
- Source lacks IDs but D8 requires them.
- Translation ID conflicts not detected.
Solutions
- Custom Migration: Create new IDs and update references.
- Manipulate AUTO_INCREMENT: Shift ID ranges to avoid collisions.
- Accept Risk: Proceed and accept data overwrite (not recommended).
Upgrading Multilingual Sites (D6/D7 to D8)
Enable the core migrate_drupal_multilingual
module.
Drupal’s online documentation is © 2000-2020 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License.