eZ Community » Forums » Install & configuration » Upgrade to eZ 4... and updateniceurls
expandshrink

Upgrade to eZ 4... and updateniceurls

Upgrade to eZ 4... and updateniceurls

Monday 10 March 2008 10:36:38 am - 11 replies

Im working on a upgrade of our main site to eZ 4. The site are running 3.8.6 atm. Everything has been good up to 3.10. Ezp 4.0 upgradre worked well up to where i run the updateniceurl script.

The settings im using for the urls are:
override/site.ini.append.php

[URLTranslator]
Translation=enabled
WordSeparator=underscore
TransformationGroup=urlalias_compat
TransformationGroup=lower_uri
WildcardTranslation=enabled

And im running the command:

bin/php/updateniceurls.php --import --fetch-limit=100 -s studier

The error im getting after the script has run for a while:

Fatal error: Call to a member function attribute() on a non-object in /opt/lampp/www4/kernel/classes/ezcontentobjecttreenode.php on line 4014

Anyone had the same problem?

Modified on Monday 10 March 2008 10:37:38 am by Pål Messenlien

Monday 10 March 2008 11:36:00 am

Hi,

You have try to use the transform.ini file like this :
transform.ini.append.php

<?php /* #?ini charset="utf-8"?

[Transformation]
Groups[]=lower_uri
 
[lower_uri]
Extensions[]
Commands[]
Commands[]=normalize
Commands[]=transform
Commands[]=decompose
Commands[]=transliterate
Commands[]=diacritical
Commands[]=lowercase
Commands[]=url_cleanup

*/ ?>

site.ini.append.php

[URLTranslator]
TransformationGroup=lower_uri

Monday 10 March 2008 10:06:53 pm

Still getting the same error. Starting to think i have a bad node or something in that database. Are there anyway i can run the update script and get some more information about where it fails?

Tuesday 11 March 2008 8:30:26 am

Hello,

You can try to use :
/update/common/scripts/cleanup.php

/bin/php/flatten.php

Use -h before to see what you are doing.

Tuesday 11 March 2008 10:09:41 am

cleanup worked good. But flatten.php resultet in this error

Fatal error: Call to a member function deleteStoredClassAttribute() on a non-object in /opt/lampp/www4/kernel/classes/ezcontentclass.php on line 912

The databsae im running on is quite large so it can be some strange timouts im getting here. Are there some mysql or php settings i could try?

Tuesday 11 March 2008 10:13:52 am

after cleanup i tried using --debug on the updateniceurl scripts. There is some database problems here.. getting this error..

Error: (eZMySQLDB)
Query error: Duplicate entry '2631-4a6b8d8f22e40ab3978d6fc2a2a949ca' for key 1. Query: UPDATE ezurlalias_ml SET parent = 2631
WHERE parent = 20502

Thats just one of them.. theres loads of them

Im reseting the datbase and starting over the update again to see if that can help

Monday 27 October 2008 3:35:47 pm

Would really like to hear if or how you solved this...i have the same problem happy.gif Emoticon

Tuesday 28 October 2008 9:31:40 am

Error: (eZMySQLDB)
Query error: Duplicate entry '2631-4a6b8d8f22e40ab3978d6fc2a2a949ca' for key 1. Query: UPDATE ezurlalias_ml SET parent = 2631
WHERE parent = 20502

Try clearing the table ezurlalias_ml and rerun updateniceurls.php again. ezurlalias_ml contains calculated url-alias from your articles / contentobjects and is generated when publishing content and/or running updateniceurls. I had some problems with ezP 4.0.0 as - according to the changelog for ezP 4.0.1 - there was an error in url-alias-logic turning ezurlalias_ml inconsistent. If you encounter the above errors, run

Truncate table ezurlalias_ml;

in your mysql-shell or phpmyadmin. There is no need to reset / reload the completely database as you would reset it to your old ezP (3.10).

Friday 28 November 2008 1:53:32 pm

Hi.
We also got an errormessage when running updateniceurls. We are upgradeing from 3.6.12 to 4.0.1.

Our errormessage said: "PHP Fatal error: Call to a member function on a non-object in kernel/classes/ezcontentobjecttreenode.php on line 3996"

To resolv this I hacked updateniceurls.php so it informed me about the object that caused the Fatal error.
And the result was inconsistent data in the table "ezcontentobject_tree". The colomn "path_identification_string" contained a path that did not exist in system. By edit the correct data the updateniceurls got back on track.

Friday 17 April 2009 3:35:16 pm

Does anyone found a way with this ?

I am having the same problem from 3.9.2 to 3.10.1

Thursday 04 February 2010 11:45:53 am

Am also having the same problem when I run the updateniceurl.php script. Am upgrading from 3.9.4 to 3.10.1

++PHP Fatal error: Call to a member function on a non-object in /www/ezpublish3.10.1/kernel/classes/ezcontentobjecttreenode.php on line 3996
Fatal error: eZ Publish did not finish its request
The execution of eZ Publish was abruptly ended, the debug output is present below.

With the debug option I find this error:

[ Feb 04 2010 11:12:46 ] [] eZCharTransform::groupCommands:
Transformation group urlalias_compat is not part of the active group list Groups in transform.ini

I will appreciate any assistance!

Brian

Tuesday 10 July 2012 2:54:30 pm

I run into the same problem while upgrading from 3.10.1 to 4.0.1

after some investigations, I think I found the problem ( and manage to fix it )

I found some entries in ezcontentobject_tree which have no parents (parent_id do NOT exist anymore in ezcontentobject_tree)

this makes updateniceurls.php crash with the following error :

"PHP Fatal error:  Call to a member function attribute() on a non-object in ezcontentobjecttreenode.php on line 3959"

I manage to overcome this error by adding the following lines in updateniceurls.php

Line 1102 ---

 ...  $nodeStartTime = microtime( true );
     // ADDED TT -> create a table of all nodes in ezcontentobject_tree which parents do NOT exist anymore
         $nodesHavingNoParent = $db->arrayQuery( 'select node_id from  ezcontentobject_tree where parent_node_id not in (select node_id from  ezcontentobject_tree)' );
         $arrayNoParent = array();
         foreach ( array_keys( $nodesHavingNoParent ) as $key ) {
                 array_push($arrayNoParent, $nodesHavingNoParent[$key]["node_id"]);
          }
     // -- TT
 while ( !$done ) ....

Line 1119

 ...  $node = $nodeList[ $key ];
          // ADDED TT
                // echo ( "Checking node_id:" . $node->attribute( 'node_id' )  . "\n" );    
                if (in_array($node->attribute( 'node_id' ), $arrayNoParent)) {
                    echo ( "\n" . "No Parents found for node_id:" . $node->attribute( 'node_id' )  . "\n" );
                 }else{
          // -- TT 
 $hasChanged = $node->updateSubTreePath(); ....

Line 1138

 ...   list( $column, $counter ) = displayProgress( $changeCharacter, $nodeStartTime, $counter, $nodeCount, $column );
         // ADDED TT
                      }   
         // -- TT

The script runs now without any errors and simply ignore all nodes that were causing the problem.

Modified on Tuesday 10 July 2012 4:17:44 pm by Thierry Tournet

expandshrink

You must be logged in to post messages in this topic!

36 542 Users on board!

Forums menu

Proudly Developed with from