We had been running our blogs using separate single blog installations of .Text .94 for best part of two years without any major issues. With the release of Community Server 2.0 we decided that it was a good idea to upgrade, the danger of getting left behind on the upgrade path was just too real. So how do you go from .Text .94 to CS 2.0, well it is not that straight forward.
Firstly there is no direct path for the upgrade. However; there is an excellent tool for moving from .Text .95 to CS 1.1 from Kevin Harder (http://communityserver.org/forums/thread/487305.aspx). I checked with him to see if there was any plan for a tool to go from .Text .95 to CS 2.0, there will be soon (a few weeks) but not yet, also you cannot use the old version as the DB schema are different between each version of CS. He suggested going via CS 1.1 for now.
So firstly I needed to upgrade our .Text to .95, a full update was not required, just the DB schema update. I downloaded .Text .95 from http://www.gotdotnet.com/workspaces/releases/viewuploads.aspx?id=e99fccb3-1a8c-42b5-90ee-348f6b77c407 and ran the SQL update script, on each instance of .Text .94. One added issue here, highlighted in the forums, is that the update script does not add an IsActive column to one of the tables. I needed to add this manually and populated wit the setting true.
I then download the CS 1.1, a bit hard to find now CS 2.0 is released, as all CS download links end up at the new version, but I got it via http://www.telligentsystems.com/Solutions/license.aspx?File=cs_1.1_src and did a default install on a development PC.
I could then run the DotText-CS-Converter tool and imported the .Text .95 data from our live server into my development CS 1.1 database.
Now this is where I had an issue, we had two blogs to import, both on single blog installations. The first blog went on fine, but the second failed with violation of primary key constraints at stage 3 of the import when it needed to move the actual content. I realised that we were getting clashes of primary keys in the contents table between the old separate blogs.
The fix I did was to edit the data in the old .Text DB, luckily there were only a few tens of entries in the smaller one. I had to remove the identity flag on the table, then I could alter the row ID (and any parent row IDs in other rows) to avoid a clash, basically I just added 5000 so 123 became 5123. When this was done the import then worked. I hope I have just stored trouble for the future when the new server row identities reach the numbers I manually used!
So I now had a working CS 1.1 server with two blogs imported. This I then updated to CS 2.0 using the web install. All was OK on my development PC. I just needed to get it on the live server.
To get it on our live server I used the MSI of CS 2.0 to very quickly get a working server up, for any new installation I cannot recommend this MSI enough. I then restored the DB from my development PC over the one on the live server. The only strange bit here was that I got the message that the ‘Network Service’ user could not access the DB, but when I check the SQL login rights it had the correct rights. It actually turned out that this error was due to the fact that the web site running CS 2.0 had somehow got reset to use ASP.Net 1.1, as soon as this was changed back to 2.0 all was Ok.
The final step was to put in some redirects via virtual directories to make the links to our old blog work for the new server.
So a bit complex to get it all working but it works now, and it was well worth the effort. CS 2.0 at a great product, looks good, is flexible and easy to use.