Migration to WordPress 2.3 (from WordPress 2.0.3) > How it was done by me

Hi, WordPressed people!
It is my first post in English, and the second post on the wordpress I use here, at zmicer.com (my belarussian language based private blog) for half and a year. As wordpress in general used by the technically expirienced people, I supposed that all the readers of this post know English rather well, and I do not risk loosing the belarussian aud, anience from writing this post in English.

Preface
It would be on my expirience on upgrading WordPress #version 2.0.3 till the latest at this moment, #version 2.3, including all the details I came across during performing this operation. So the audience is word press users, especially wordpress hostings administrators interested in upgrading some old versions of this excellent CMS/blog/publishing system till the up-to-date one.

Part One : why to upgrade WordPress
I have been in the phase of running new blog related project called JBR (appropriate 2.3 version of wordpres for this project is available at http://jbr.zmicer.com). Also I had the 2.0.3 version of wordpress at the http://www.zmicer.com. When firstly taking look at the 2.3 – I was not impressed as did not notice great differences. But my mind was leaded to the right direction when I have installed the QuoteRotator widget and played with the concept of the widgets management wordpress 2.3 provides. Seeing that I decided to migrate my zmicer.com to the up-to-date wordpress software.

Part Two : migration : DB
First of all I look the nice “wordpress-native” article http://codex.wordpress.org/Upgrading_WordPress_Extended on the upgrade operation to be familar with the possible changes etc. But all appeared to be very simple. The first operation was DB backup. I choosed the variant of making backup using phpMyAdmin provided usually by all the php hosting providers. All is done with this item succesfully. The only thing I was very proud to see was the belarussian language localization of phpMyAdmin. Great job, http://extmedia.com!

Surprise! Belarussian language here!

Another ways to make the backup is:
– use “backup on demand” WordPress plugin http://www.skippy.net/blog/plugins/ allowing you to make the backup of all the tables in DB through the standard WordPress admin interface (I checked it under WordPress2.0.3 only, version of plugin is 1.7, and I made the backup of all my mysql DB including phpbb run here http://forum.zmicer.com)
– use ssh client (putty http://www.chiark.greenend.org.uk/~sgtatham/putty/), login to the server and use shell
– use remote ssh commands to make what we need (e.g. excellent winscp open source software http://winscp.net/)

Part Three : migration : previous WordPress 2.0.3 installation backup
The major part of backuping is to determing what to backup and what not. The guide above mentioned provides all the information on this. Then the very important step is not to loose the changes you did at the previous installation’s php/js/css sources. I managed it the following way. Copy all the old installation to my local disk, then get the installation of appropriate version of WordPress, and using Araxis Merge, reviewed the differences. In my case it was native installation of wordpress 2.0.3 and the files I got from my server (changed a little version of 2.0.3, I have not local staging). The following paragraph says a little about what are the changes I had.

Part Four : migration : changes between clean installation of 2.0.3 and wordpress from zmicer.com
The changes I got using Araxis Merge are as follows:
* wp-content\themes\default\images\personalheader.jpg
that lovele picture with my eyes you could see at the zmicer.com header
* wp-content\themes\default\footer.php
cosmetic change – my first/last name, motto of the site placed
* wp-content\themes\default\header.php
the following changes are made:
a. #headerimg { background: url(‘?>?>?>/images/personalheader.jpg’) no-repeat top;} //is put the the style to be able use custom header image
b. completely changed sources of the header to be able to contain that slogan at the top of the blog.
<div id="header">
<div id="headerimg">
<!-- some default context was removed here -->
<table width="100%" height="100%">
<tr>
<td height="30%">
<br />
<br />
<div class="description_name_small">
<a href="<?php echo get_settings('home'); ?>/">Працягвай паміраць для мінулага</a>
</div>
<div class="description_name_big">
<a href="http://zmicer.com/?p=63" mce_href="http://zmicer.com/?p=63"><?php bloginfo('name'); ?></a>
</div>
</td>
</tr>
<tr>
<td height="35%">

</td>
</tr>
<tr>
<td>
<div class="description_author">
<?php bloginfo('description'); ?>
</div>
</td>
</tr>
</table>
</div>
</div>

* wp-content\themes\default\sidebar.php
a. added the following php instruction to show the random page from the galery (lazyest-gallery WordPress plugin http://lazyest.keytwo.net/ )

<?php
if (function_exists(lg_random_image))
lg_random_image("");
?>

b. localizations of the sidebar namings is done (belarussian language is used here)
c. not necessary linkes at the meta are excluded – just site admin to be able to have the simpliciter link to the login page
* wp-content\themes\default\style.css
my styles were introduced to be able to use them when creating posts:
tips

<div class="noteStyle"></div>
<div class="captionStyle"></div>

image with the orange caption

<div class="imageCaption"></div>
<img src="http://zmicer.com/wp-content/uploads/2007/oktober/" mce_src="http://zmicer.com/wp-content/uploads/2007/oktober/"/>

Part Five : migration : funny story on upgrade.php

Removing old not necessary context – following believe WordPress 2.3 contains friendly update functionality and backup was done perfectly!

The rest of activities is very simple. Remove what you do not need. Then ftp the latest version of WordPress. Then apply the changes you got from the previous step (in my case all of them were concerning the changing default scheme). And finally http://example.com/wp-admin/upgrade.php should be invoked. But when I go to this page – saw the message like “the update of DB is done succesfully”. I was really surprized by that and did not know what to think. And it clarified later. One man which was asked by me to take a look at zmicer.com to evaluate it, mailed to me the following: youh! I saw sql exceptions at the zmicer.com home page and decided to help you, running the upgrade php. And I suppose it was done almost at the same minutes I have finished copying new wordpress files to the server:) Imagine that!

At the end of the story some time for spend to adjust the css (in the 2.0.3 there won’t native style class “description”, and I introduced it for my purposes, but at the 2.3 they added another description, and some minutes passed before get the conclusion there is another CSS style class with the same name). So be prepared to some problems like that.

Conclusion
WordPress provides easy to perform procedure of upgrade. Guys try not to change base signatures of the framework, so almost all the plugins work properly (http://codex.wordpress.org/Plugins/Plugin_Compatibility/2.3). I really impressed by the widgets at the 2.3 version. I did not make investigations on what else was added, but know there are tags , advanced WSYWIG editor. Would make another post on that later.

Friends, hope this first post in English was useful for you. Please provide your comments here, or write to HDmitry@gmail.com, or go to zmicer.com! As I do not have expirience in blogging in English – please share your opinion on the style – would be very thankful to you!

Items to be reviewed/clarified as not cleared at this post
– how to automate this process
– have the list of files I have changed at the previous release
– have what to remove and what to leave
– auto download, unpack, replace what is necessary
– auto merge
– auto getting the upgrade page
Please share your ideas on that. Hope it is implemented already!
– is the reliable matrix of compatibility of WordPress plugins exists? I have such a belief it is so!
– make investigation on the best way to make the monthly/weekly/daily/on demand backup of DB – fully automatize this process