doctrine / phpcr-odm

Doctrine PHPCR ODM
http://www.doctrine-project.org/projects/phpcr-odm.html
MIT License
183 stars 97 forks source link

Incompatible default value in UnitOfWork #872

Open rmbl opened 2 months ago

rmbl commented 2 months ago

I get the following error when updating phpcr-odm in an older project.

Cannot assign null to property Symfony\Component\Routing\Route::$condition of type string

condition was only added in newer versions and is not available in the old node entries. I was able to "fix" it by checking if the field is nullable before setting the default value in doctrine/phpcr-odm/lib/Doctrine/ODM/PHPCR/UnitOfWork.php:532 but that feels a bit hacky.

Is there any way to easily migrate the old nodes to this newer version or is this a bug?

dbu commented 1 month ago

This is a change from routing bundle 3: https://github.com/symfony-cmf/routing-bundle/blob/3.x/CHANGELOG.md#300

Unfortunately, we did not document how to migrate existing data. I Think your best shot is the phpcr-shell update statements. You need to find a query that finds exactly all the routes and nothing else and then can set condition to ''. If you find a good query, it would be great to contribute it to the upgrade instructions of the routing bundle.