The upgrade project started around summer 2007, where I had the 2 challenges of upgrading:
2) Our work intranet
Both were running WSS2.0 SP2 and the servers were generally updated with the nessesary patches etc.
I started reading a lot of Microsoft pages, whitepapers and stuff about upgrading, but I never found that the papers satified me, there are merely talking very generally terms and inter-linking between each other.
Could it bee that easy?
1. Installed a new server with SQL 2005 and WSS3 and created a site collection with a content database WSS_Content
2. Ran a prescan on the installation, seemed ok as my site wasw never touched with Frontpage.
3. Backed up my existing content database.
4. Restored my Content database on the new installed SQL server as SharepointMosEisley
5. In Central Administration, I deleted the WSS_Content database and from the commandline ran:
"C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\BIN\stsadm" -o addcontentdb -url http://punisher -databasename SharePointMosEisley -databaseserver punisher
6. The import (and upgrade) of the Content database went well - no errors - and I could see that tables like Docs and Lists now was named AllDocs and AllLists and was added several columns.
7. So naturally, go for it and start up a browser - result: 404 Errors everywhere, all Url's I tried. Total bummer.
8. Well, I actually took me 3 weeks to solve it [Tried a lot of stange stuffe here] - STUPID!!! - All my sites except 2 runs in the Danish language, and I missed to apply the danish language pack first - DOH!!!
9. So i deleted Sitecollections and content database and applied the danish language pack
10. Re-ran all procedures from step 3 - and Viola - everything worked.
The Work intranet - The Upgrade:
1. Well, after the succes with my private site, the time came to the intsranet, which were quite like my private site - I thought...
2. I tried the same method as for my private site, and actually, quite a lot worked, except 10-15 sites, all based on a template we made 1,5 years ago. I had added extra Webzones to the default.aspx in WSS2, remember to add these to WSS3, or the upgrade will rearrange these :-(
3. So I digged into the SQL database, and found, that in the sql records in the Webs table, 1 tings were different:
The Template Id was 6215 - a quick google for this tell me that this related to MS Project
Well, we actually tried to bind MS Project and Sharepoint together last year - never worked.
I also made sure that all sites was binded to the correct Default.aspx file:
update Docs Set SetupPath='1033\STS\default.aspx' where dirname='<TheBadUrl>' And Leafname='Default.aspx'
Repeated for each bad site.
4. So I changed the records for Project sites to the standard Template Id 1 - Standard Team Site:
Update Webs set CustomJSURL=NULL,WebTemplate=1 where webTemplate=6215
5. Re-ran the export/import stuff, and Yes the sites could now be browsed due to the changed. But all Document Libraries, Lists just gave 404 errors clicking on them. Some of them - called Issues and Risks had some MS Project properties, I could see that in the properties for the lists. AS they all was empty, I decided to delete them totally:
delete from docs where id in (select docid from navnodes where name='Issues' or name='Risks')
delete from navnodes where name='Issues' or name='Risks'
delete from userdata where tp_listId In (SELECT tp_id from lists where tp_title='Issues' or tp_title='Risks')
delete from lists where tp_title='Issues'
delete from lists where tp_title='Risks'
Of course, this step is very optional, and not actually needed, when I found the final solution - read on..
6. So I started comparing records for "good" lists and "bad" lists, field by field, both in the WSS2 version and the WSS3 version to find what made the upgrade process "skip" these entities. I knew data was there, as they were rendered in the various webparts.
7. After a long time of digging and comparing, several exports/imports, and still no clue, I started thinking in logs, - they upgrade must have left some form of log.
8. Digging further, I learned that the physical paths of WSS2 and WSS3 are quite different, in WSS2 You more or less can compare the paths 1:1, but in WSS3, the structure in totaly different:
9. So I started quyering a little in the Docs table for the "bad" lists, and viola, this SetupPath came up:
10. Sure, these paths were non-existing, as the new installation knows nothing of MS Project. This led me to another little sql update:
update docs set setuppath=replace(setuppath,'PWA','STS') from docs where setuppath like '%PWA%'
update docs set setuppath=replace(setuppath,'MPS','STS') from docs where setuppath like '%MPS%'
11. And Bingo, everything works :-)
So a short recap of the solution
1. Install a new SQL server and WSS3 - With Language packs as needed.
2. Remove the existing content database in the WSS3 Installation
3. Run PreScan.exe on Your existing WSS2
4. Take a full backup of the WSS2 Content databases
5. Import the databases on the new SQL server
6. And the real "deal" - the sql that make all objects (in my case) upgradeable:
--Fix the Webs
update Docs Set SetupPath='1033\STS\default.aspx' where dirname='<TheBadUrl>' And Leafname='Default.aspx'
update webs set CustomJSURL=NULL,WebTemplate=1 where webTemplate=6215
--Clean up Issues and Risks from Project
delete from docs where id in (select docid from navnodes where name='Issues' or name='Risks')
delete from navnodes where name='Issues' or name='Risks'
delete from userdata where tp_listId In (SELECT tp_id from lists where tp_title='Issues' or tp_title='Risks')
delete from lists where tp_title='Issues'
delete from lists where tp_title='Risks'
--Remove all Project references
update docs set setuppath=replace(setuppath,'PWA','STS') from docs where setuppath like '%PWA%'
update docs set setuppath=replace(setuppath,'MPS','STS') from docs where setuppath like '%MPS%'
7. Import the Content database on the new WSS3:
"C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\BIN\stsadm" -o addcontentdb -url http://aaliitnt15 -databasename SharePoint3Content -databaseserver aaliitnt08
8. You are done.
What did I learn?
1. No Frontpage manipulation with sites/pages - good, as I fear the upgrade was changed to a "new install & move stuff" instead
2. Multilanguage - no big deal after all
3. 3Party products - no WSS2 downloaded webpart or Corasworks worked after the upgrade; this was not a big issue, as I never used most of it, and had primarily used the standard parts.