In the Depths of the Cloud, Open Source and Proprietary Leviathans Fight to the Death
Jono Bacon Asked Google Home ‘Who Founded Linux?’ You Won’t Believe What Happened Next!
Red Hat's Women in Open Source Award Winners, 2017
Imagine an Android Phone Without Linux Inside
Linus Torvalds Talks to Debian Users
Mozilla Relents, Thunderbird Can Stay
Heed the Prophet Stallman, oh Software Sinners!
October 1st, 2013

Zen Cart Migration: When the Manual Fails


Anybody who’s played with computers outside of surfing, sending emails and doing some word processing has run across these initials at least once or twice. Put politely, they mean, “Read the manual.”

Sometimes the manual is of little use, however. Such was the case in a recent Zen Cart migration I undertook. However, even in cases where the manual is being ignored, it should still be read first. Before going off book, it helps to understand the process behind what you are doing.

A new client wanted to upgrade a very old version of Zen Cart, a PHP based open source eCommerce solution. When I looked at the hosting service he’d been using, specifically at what he was paying for what he was getting, I suggested he move the site to a small virtual private server (VPS) with a medium sized hosting company I trust. I recommended he pay for a managed VPS, which meant the hosting company would do all the heavy lifting needed to keep his server operational instead of leaving it up to him. The cost wasn’t bad, and I know this company’s support dudes to be efficient and easy to work with.

Zen Cart LogoAlthough I maintain a Zen Cart site for another client, it’d been a long time since I’d migrated it and the program’s release cycle doesn’t require frequent upgrades as with, say, WordPress. To re-familiarize myself, I downloaded the latest and greatest version and installed it onto a password protected directory (to keep the search engines away) on a test site. The installation went smoothly.

After that, I went to the Zen Cart website to “read the manual,” to see what it had to say about migrating and upgrading. As I expected, there was a lot of information about migrating and upgrading separately, but little to nothing on doing the two simultaneously. However, I did manage to find one article buried somewhere dealing with that issue. Don’t do it, the writer said. Either upgrade first then migrate or migrate first then upgrade; under no circumstances migrate and upgrade at the same time. Too much could go wrong.

Made sense to me.

I decided to migrate first. That would leave my client’s site up and running on his old server while I upgraded and got it ready for prime time on the new. I downloaded his Zen Cart install, dumped the database and transferred both to the new server, after doctoring the configuration file in Zen Cart to recognize the new database I’d created.

Right away there was a problem. It appears that my client’s old hosting company was asleep at the wheel and wasn’t keeping their servers up to date, which I discovered when I went to check-out the installation on the new server. I was greeted by a message telling me that the version of PHP on the new server was much too new for this old version of Zen Cart. It wouldn’t run. I’d have to do the upgrade on the client’s old server, then migrate.

I didn’t want to brick my client’s site, so I didn’t do the upgrade right away, Instead, I did a test upgrade first. I created a directory and a new empty database. I filled the database and installed a copy of his site, modified to connect with the new database, in the new directory. Presto! The site loaded perfectly. I then uploaded the latest and greatest Zen Cart and brought up the install screen.

Guess what? Another message. This time the PHP was much to old. Back to the drawing board.

I checked the system requirements for all versions of Zen Cart, looking specifically at the needed PHP version. I decided to try a two part upgrade. I’d upgrade first to 1.3.9 (he was running a patched version of 1.3.0), move that to the new server and then upgrade to the latest.

I uploaded 1.3.9 and went to the install screen. Everything looked fine. I started the install process, choosing upgrade mode so the database wouldn’t be overwritten. Everything went fine until it stalled about three-quarters of the way through after letting a page full of error messages fly. Damn. I tried again two or three times; reinstalled and all that. Each case returned the same result. The upgrade seemed to be going swimmingly, then a host of error message and a stalled process.

It was time for plan C, or wherever I was up to in the alphabet by that time. There was only one thing to do; lay the manual aside and upgrade and migrate all at once. I had nothing to lose, actually. If it didn’t work, my client’s site was still operational on the old server. I’d just have to come up with a plan D, E or F.

I checked the database that was already installed on the new server to make sure the tables were filled with what looked like appropriate data. I then uploaded the latest Zen Cart and went directly to the install URL. Again, I clicked upgrade. In only a few seconds the site was up and operating. Success.

In retrospect, the manual was wrong and I should’ve tried the migrate and upgrade simultaneously option first. I had nothing to lose. If it worked, I’d saved myself a couple of steps and my client some billable hours. If it didn’t, so what? The client’s site would still be operational, I’d just need to move on to plan B.

As I said, sometimes the manual is of little use.

Now, if if I can just figure out how to migrate about 4,000 articles from an old PostNuke site into WordPress…

Christine Hall has been a journalist since 1971. In 2001, she began writing a weekly consumer computer column and started covering Linux and FOSS in 2002 after making the switch to GNU/Linux. Follow her on Twitter: @BrideOfLinux

Comments are closed.