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)03861MITPHP

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 1mo ago

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

31

—

LowBetter than 68% of packages

Maintenance49

Moderate activity, may be stable

Popularity17

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity40

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

375d 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

[sitegeist/monocle

An living-styleguide for Neos that is based on the actual fusion-code

45315.9k10](/packages/sitegeist-monocle)[sitegeist/kaleidoscope

Responsive-images for Neos

29352.4k10](/packages/sitegeist-kaleidoscope)[flowpack/listable

Tiny extension for listing things

35209.0k7](/packages/flowpack-listable)[kaufmanndigital/gdpr-cookieconsent

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

2540.7k](/packages/kaufmanndigital-gdpr-cookieconsent)[neos/seo

SEO configuration and tools for Neos

13990.5k24](/packages/neos-seo)[shel/neos-colorpicker

A plugin for Neos CMS which provides a colorpicker editor

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

PHPackages © 2026

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