"Old" images disappear in new image system

Author Message

Felix Laate

Monday 26 April 2004 1:07:31 am

Hi all!

I upgraded a 3.2-4 system to 3.3-4, and all works well except for the fact that all the "old" images are "lost". In the output-xhtml they are reduced to

<img src= />

.

New images can be upload and are displayed as normal.

I've searched the fora and documentation, and I found many questions but not the final answer. Is there a solution? Or will I have to re-upload all the images, and edit all the articles? Or even downgrade?

Any help is appreciated!

Felix

Publlic Relations Manager
Greater Stavanger
www.greaterstavanger.com

Marcus Ilgner

Monday 26 April 2004 3:44:47 am

Hi Felix,

this is because of the new directory structure in var/<yourdesign>/storage. I wrote this small script (runs on Linux only, I fear, but migration should be fairly easy) to migrate the old structure into the new hierarchy. Take a look at it and maybe comment out copy() and mkdirs() on the first run.
Also make sure to run the cleanup script beforehand.

#!/usr/bin/php4
<?php
        function mkdirs($mode, $path)
        {
                exec("mkdir -m $mode -p $path");
        }
                                                                                                                            
        $server = "localhost";
        $user = "ezpublish"; // put your mysql-user here
        $password = "password"; // put your password here
        $database = "ez"; // put your database name here
        $baseDir = "var/mydesign/storage/"; // change design name here
                                                                                                                            
        //connect
        $connection = mysql_connect( $server, $user, $password, false );
        mysql_select_db( $database );
                                                                                                                            
        //find all ezimage attributes
        $result = mysql_query( "SELECT id, language_code, version, contentobject_id FROM ezcontentobject_attribute WHERE da
                                                                                                                            
        //enumerate all images
        while( ($data = mysql_fetch_assoc( $result )) != false )
        {
                //attribute
                $attribute_id = $data["id"];
                $version_number = $data["version"];
                $language_code = $data[ "language_code" ];
                $object_id = $data["contentobject_id"];
                                                                                                                            
                //old filename
                $subresult = mysql_query( "SELECT filename FROM ezimage WHERE contentobject_attribute_id=$attribute_id AND
                $row = mysql_fetch_row( $subresult );
                $old_filename = $row[0];
                $oldDir = $baseDir . "original/image/" . $old_filename;
                                                                                                                            
                //build new filename
                $subresult = mysql_query( "SELECT path_identification_string FROM ezcontentobject_tree WHERE contentobject_
                $row = mysql_fetch_row( $subresult );
                $path_string = $row[0];
                $newDir = "images/" . $path_string . "/" . $attribute_id . "-" . $version_number . "-" . $language_code;
                                                                                                                            
                printf("Creating dir %s\n", $newDir );
                mkdirs( 0770, $newDir );
                                                                                                                            
                $asPath = explode( "/", $newDir );
                                                                                                                            
                $newFile = $newDir . "/" . $asPath[ count( $asPath ) - 2 ] . "1.jpg";
                                                                                                                            
                //copy file
                copy( $oldDir, $newFile );
                printf( "Copying \"%s\" to \"%s\"\n", $oldDir, $newFile );
        }
                                                                                                                            
        mysql_close( $connection );
?>

After running this script, just clear the cache and visit the site. The database should then get updated automagically.

Greetings
Marcus

Chris Anderson

Wednesday 28 April 2004 11:58:42 am

Marcus,

I am trying to run this script you have provided and noticed that the code has been truncated to fit within the window. Could you please repost the script for the missing sql SELECT statements?

TIA

-Chris

Powered by eZ Publish™ CMS Open Source Web Content Management. Copyright © 1999-2014 eZ Systems AS (except where otherwise noted). All rights reserved.

eZ debug

Timing: Jan 19 2025 00:11:18
Script start
Timing: Jan 19 2025 00:11:18
Module start 'layout'
Timing: Jan 19 2025 00:11:18
Module start 'content'
Timing: Jan 19 2025 00:11:19
Module end 'content'
Timing: Jan 19 2025 00:11:19
Script end

Main resources:

Total runtime1.0071 sec
Peak memory usage4,096.0000 KB
Database Queries59

Timing points:

CheckpointStart (sec)Duration (sec)Memory at start (KB)Memory used (KB)
Script start 0.00000.0056 588.0469152.6406
Module start 'layout' 0.00560.0039 740.687539.4766
Module start 'content' 0.00950.9961 780.1641584.4922
Module end 'content' 1.00560.0015 1,364.656312.4375
Script end 1.0071  1,377.0938 

Time accumulators:

 Accumulator Duration (sec) Duration (%) Count Average (sec)
Ini load
Load cache0.00360.3589160.0002
Check MTime0.00140.1386160.0001
Mysql Total
Database connection0.00080.077610.0008
Mysqli_queries0.951694.4859590.0161
Looping result0.00090.0875570.0000
Template Total0.966396.020.4832
Template load0.00220.218720.0011
Template processing0.964195.732920.4821
Template load and register function0.00010.014110.0001
states
state_id_array0.00530.524210.0053
state_identifier_array0.00090.091220.0005
Override
Cache load0.00190.1857250.0001
Sytem overhead
Fetch class attribute can translate value0.00070.066730.0002
Fetch class attribute name0.00150.149440.0004
XML
Image XML parsing0.00060.064430.0002
class_abstraction
Instantiating content class attribute0.00000.002640.0000
General
dbfile0.00120.1194160.0001
String conversion0.00000.001140.0000
Note: percentages do not add up to 100% because some accumulators overlap

Templates used to render the page:

UsageRequested templateTemplateTemplate loadedEditOverride
1node/view/full.tplfull/forum_topic.tplextension/sevenx/design/simple/override/templates/full/forum_topic.tplEdit templateOverride template
1content/datatype/view/ezimage.tpl<No override>extension/sevenx/design/simple/templates/content/datatype/view/ezimage.tplEdit templateOverride template
3content/datatype/view/ezxmltext.tpl<No override>extension/community_design/design/suncana/templates/content/datatype/view/ezxmltext.tplEdit templateOverride template
7content/datatype/view/ezxmltags/paragraph.tpl<No override>extension/ezwebin/design/ezwebin/templates/content/datatype/view/ezxmltags/paragraph.tplEdit templateOverride template
2content/datatype/view/ezxmltags/literal.tpl<No override>extension/community/design/standard/templates/content/datatype/view/ezxmltags/literal.tplEdit templateOverride template
2content/datatype/view/ezxmltags/line.tpl<No override>design/standard/templates/content/datatype/view/ezxmltags/line.tplEdit templateOverride template
1print_pagelayout.tpl<No override>extension/community/design/community/templates/print_pagelayout.tplEdit templateOverride template
 Number of times templates used: 17
 Number of unique templates used: 7

Time used to render debug report: 0.0001 secs