In part 1 of this
series, I talked about preparing for the site upgrade. In this
part I'm going to talk about how I did the actual Upgrade.
Before we start, I pulled down the site files and a backup of
the Database from the live site. I set both up to run on my local
machine, and did some house keeping first. On this particualr site,
we were removing a section and some of the DocTypes, so I did that
on the old copy first, to make things easier later on. I then took
another backup of the database once I was done (in case anything
wet wrong and I needed to start again).
Next, I set up a new VS.Net project, and installed Umbraco 7.3
using NuGet, along with some essential stuff, like the core
property value converters (also installed from NuGet). Once those
were installed, I opened the web.config file for the newly
installed copy of Umbraco and set the connection string to point to
my old database. I decided against merging in my config values etc
at this point, as I wanted there to be as few errors as
possible.
With baited breath, I ran the website from VS.Net. I got the
Umbraco installer screen, and it flagged that I was running an
upgrade rather than a fresh install, hapy days! I clicked the next
button, aaaaand got a big fat SQL error. The error message that I
got was a bit misleading, as it lists all of the tables etc that
aren't in the core install, and I though that was the problem,
however, after much digging through the log files, it turned out to
be a SQL server permissions issue on the database. I sorted that
out and ran the site again. This time, after a couple of minutes, I
saw the success screen, and it redirected me to the back
office.
I had a click around and everything seemed OK. The two DataTypes
that weren't v7 compatible were showing as labels, but everything
was working. At this point, I backed everything up again, and then
merged in my config files, master templates, scripts, CSS and
images etc. If you're updating from a Web Forms site, don't forget
to change the default rendering engine to Web Forms from MVC in the
umbracoSettings site.
At this point I ran into a couple of issues. the first was that
older versions of Umbraco let you have a - in the alias of
DocTypes, and the newer versions don't. This particular site had a
couple of DocTypes that had - in them, so I had to re-save the
DocTypes and restart the App Pool to get rid of the error that was
being generated. Next was that the EXSLT extensions were removed in
7, so some of my XSLT broke. Not to worry though,
you can get a package for that from the mighty Lee Kelleher. In
this particular instance, I don't care about fixing the XSLT, as
I'm going to replace all the XSLT with Razor.
The only other issue that I had was that there appears to be a
bug in one of the database Migrations that scrambles the order of
some of your DocType properties. But that was easily fixed by
re-ordering the properties on the affected DocTypes and re-saving
them.
Finally, in the Data Types section, I swapped the MNTP pickers
from uComponents (which were now labels) ot the new built in one,
and as they were set to store CSV, that just worked. The other
DataType (Embedded Content) was removed and replaced with Nested
Content. This required a bit of set up, and re-entering the data,
but it only took about an hour.
At this point, I have a (mostly) functional site, upgraded from
4.7.2 to 7.3. It was much less hassle than I was expecting, and it
seems to have worked very well for me. Your mileage may vary, I
suspect that for a much more complex site, you'll have a lot more
issues, especially if you are using quite a few custom
DataTypes.
In part 3, I'm going to cover switching the site over from XSLT
and Master Pages to Views, and tidying everything up, ready to go
up to the live site again.