PHPackages                             vivomedia/neos-9-upgrade - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. vivomedia/neos-9-upgrade

ActiveNeos-package[Utility &amp; Helpers](/categories/utility)

vivomedia/neos-9-upgrade
========================

VIVOMEDIA.Neos9.Upgrade

1.1.0(1y ago)06411MITPHP

Since Dec 20Pushed 1y ago1 watchersCompare

[ Source](https://github.com/VIVOMEDIA/neos-9-upgrade)[ Packagist](https://packagist.org/packages/vivomedia/neos-9-upgrade)[ RSS](/packages/vivomedia-neos-9-upgrade/feed)WikiDiscussions main Synced today

READMEChangelog (3)Dependencies (1)Versions (4)Used By (0)

Neos 9 Upgrade Tool
===================

[](#neos-9-upgrade-tool)

This package provides some tooling for a better upgrade path from Neos 8.3 to Neos 9.0.

Install
-------

[](#install)

```
composer require --dev vivomedia/neos-9-upgrade
```

Tools
-----

[](#tools)

### Detach variants if parents are not the same

[](#detach-variants-if-parents-are-not-the-same)

In Neos 9 it is currently not possible to create nodes with variants, where a variant has a different parent that other variants.

As a workaround you can detach the variants, which have not the same parent and create dedicated nodes.

So in this scenario:

```
      Node A (DE, EN)
        /         \
 Node B (DE)     Node C (EN)
        \         /
      Node D (DE, EN)

```

Node D(EN) becomes Node E(EN) and is not connected to Node D(DE) anymore.

```
      Node A (DE, EN)
        /         \
  Node B (DE)   Node C (EN)
      /             \
Node D (DE)       Node E (EN)

```

(!) If you need the connection between the nodes for automated translations, this will not work anymore after the migration.

(!) If this hits documents nodes, the removed connection will break any language switcher, which depends on this information to switch between languages and stay on the same document.

(!) If you use fallback dimensions, this might lead to duplicated content, as the fallback might shine through.

#### Run the migration

[](#run-the-migration)

```
./flow node:migrate 20241217200614
```

### Detach variants if Node Type is different in other dimensions

[](#detach-variants-if-node-type-is-different-in-other-dimensions)

In Neos 9 it is currently not possible for Nodes with the same identifier to have different Node Types in different dimensions.

As a workaround you can detach the variants in the other dimensions and create dedicated nodes.

(!) If you need the connection between the nodes for automated translations, this will not work anymore after the migration.

(!) If this hits documents nodes, the removed connection will break any language switcher, which depends on this information to switch between languages and stay on the same document.

(!) If you use fallback dimensions, this might lead to duplicated content, as the fallback might shine through.

#### Run the migration

[](#run-the-migration-1)

```
./flow node:migrate 20250403150125
```

Thanks to [pkallert](https://github.com/pKallert) for providing this migration

###  Health Score

30

—

LowBetter than 62% of packages

Maintenance45

Moderate activity, may be stable

Popularity18

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity41

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 90% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~66 days

Total

3

Last Release

428d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/a003ae6bea3612ba71a5d5e34478807946dc4a073893c6e7897648095bf4440d?d=identicon)[dlubitz](/maintainers/dlubitz)

---

Top Contributors

[![dlubitz](https://avatars.githubusercontent.com/u/13046100?v=4)](https://github.com/dlubitz "dlubitz (9 commits)")[![pKallert](https://avatars.githubusercontent.com/u/91674611?v=4)](https://github.com/pKallert "pKallert (1 commits)")

### Embed Badge

![Health badge](/badges/vivomedia-neos-9-upgrade/health.svg)

```
[![Health](https://phpackages.com/badges/vivomedia-neos-9-upgrade/health.svg)](https://phpackages.com/packages/vivomedia-neos-9-upgrade)
```

###  Alternatives

[neos/seo

SEO configuration and tools for Neos

141.0M32](/packages/neos-seo)[sitegeist/kaleidoscope

Responsive-images for Neos

29370.3k12](/packages/sitegeist-kaleidoscope)[kaufmanndigital/gdpr-cookieconsent

A ready-to-run package, that integrates an advanced cookie consent banner into your Neos CMS site.

2542.4k](/packages/kaufmanndigital-gdpr-cookieconsent)[techdivision/ckstyles

Neos package which enables you adding your custom style classes for the CkEditor with a simple Yaml configuration

21179.5k](/packages/techdivision-ckstyles)[sitegeist/taxonomy

Manage vocabularies and taxonomies as separate node-hierarchy.

1595.1k1](/packages/sitegeist-taxonomy)[shel/neos-colorpicker

A plugin for Neos CMS which provides a colorpicker editor

14104.7k6](/packages/shel-neos-colorpicker)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
