Nous devons migrer notre plateforme WSS V2 vers WSS V3 dans le cadre de l'évolution de nos fermes SharePoint.
La ferme WSS V2 contenait 132 Collections de sites et le fait de construire une nouvelle ferme impose la migration par DB, couplée à la création d'un template spécifique, ceci a été traîté dans les articles suivant :
Cette mise à jour s'est déroulée parfaitement pour 131 collections de sites et donc seule une collection m'a posé de gros problèmes, parmis lesquelles :
- Pages unghosted (mais qui apres recherches et utilisation de GhostHunter n'était pas du tout unghosted)
- Listes "scrubbed" (message d'erreur "The following list has not been scrubbed: ID=xxxx), qui correspond selon Microsoft à des orphelins (mais que le databaserepair ne trouve pas dans mon cas)
Après des heures passées à essayer de comprendre la source du problème et la raison des erreurs dans le addcontentDB (migration par DB) et sur les conseil d'un ami dont je ne citerai pas le nom (pour sa sécurité ;)), j'ai pris la solution brutale (j'avais déjà commencé à tripatouiller la base de données) :
- Ouvrir PRESCAN.EXE dans Reflector
On trouve donc dans la classe SCAN les variables locales stockant les requêtes SQL traquant les erreurs en base de données :
- private static string GhostedPagePerWebSqlQuery = "\r\n SELECT dbo.Docs.DirName, dbo.Docs.LeafName\r\n FROM dbo.Docs\r\n WHERE (dbo.Docs.Type = 0) AND (dbo.Docs.SetupPath IS NOT NULL) AND (dbo.Docs.SiteId = @SiteId) AND (dbo.Docs.DocFlags & 64 = 64) AND (dbo.Docs.DirName LIKE @WebUrl) AND (dbo.Docs.WebId = @WebId)";
- private static string sqlstrListsNotScrubbed = "\r\n SELECT\r\n tp_Id, tp_Title, FullUrl\r\n FROM\r\n Lists\r\n LEFT OUTER JOIN \r\n Webs\r\n ON\r\n Lists.tp_WebId = Webs.Id\r\n WHERE\r\n (tp_Flags & 0x1000000) != 0x1000000\r\n ";
Ceci m'a permis de rechercher les erreurs dans la ContentDB provoquant l'arrêt du PRESCAN et surtout l'impossibilité de réaliser l'import.
Une petite série de requête UPDATE (que je ne vous donnerai pas :)) plus tard, j'ai pu réaliser ma commande ADDContentDB
Il faut tout de même noter une petite requête de mise à jour qui n'est pas dans ce PRESCAN :
UPDATE dbo.Sites
SET
bitflags = '262144'
WHERE bitflags NOT LIKE '262144'
Afin de déclarer vos sites comme Upgradable.
Bref quelques heures plus tard et des cheveux en moins, toutes mes collections sont migrées et il ne me reste plus que le fignolage à effectuer.
Romelard Fabrice [MVP]
Commentaires
Enregistrer un commentaire