如何通过版本控制将文档从SharePoint 2003移动到SharePoint 2007?

时间:2008-11-07 16:33:22

标签: sharepoint sharepoint-2007 sharepoint-2003

我正在拼命寻找一种工具,允许我将旧版本的文档从SharePoint 2003复制到SharePoint 2007网站。
你知道任何简单的(最好是免费的)工具吗?

3 个答案:

答案 0 :(得分:5)

这对您来说可能为时已晚,但我需要从SharePoint 2003网站迁移到SharePoint 2007网站,不仅要保留版本,还要保留所有文档库中的文件元数据。迁移或升级的官方方法失败,因此我最终编写了一个必须在目标SharePoint 2007服务器上运行的工具,但可以从2003服务器复制所有列表和文档库,其元数据和版本完整无缺。它可以在http://sourceforge.net/projects/splistcp获得,因此请随意使用并改进它。

答案 1 :(得分:3)

我们最近从SPS 2003迁移到了MOSS 2007,我试图弄清楚如何做到这一点。可悲的是,似乎没有一个好方法。我最终做的是使用备份我的SPS 2003内容数据库和MOSS 2007 VM来对整个SPS 2003门户进行数据库附加升级。然后,我使用内容迁移命令(stsadm -o export,stsadm -o import)将包含所有版本的列表移动到“真正的”MOSS 2007网站集。

这个page为我提供了进行数据库迁移的步骤。

还可以使用一些很好的命令来移动列表here。为了记录,迁移命令(例如gl-exportlist,gl-importlist)仅在两个MOSS 2007安装之间起作用。

在结果可以接受之前,我必须使用stsadm扩展和内置命令两次尝试。真正的关键是将数据库迁移到VM以将所有内容都集成到MOSS中,以便我可以使用这些工具。

我知道这似乎是一项疯狂的工作,但这是我找到完成工作的唯一方法,而不会为像AvePoint的DocAve Migrators这样的东西投入数千美元。它真的不是 坏。

需要注意的一点是,如果在执行导出和导入时包含用户安全性,则会将大量SharePoint组和用户添加到生产网站集中。

答案 2 :(得分:1)

splistcp工作得非常好,但是当我试图移动文件时,我偶尔会出现一次超时错误。我收到一个超时消息,然后是一条无法找到文件的消息,然后该程序就退出了。我下载了MBSPListItemsMap.cs中的源代码,程序试图获取该文件。

我在第620行的catch代码下面添加了一个finally块,写给consule告诉我系统正在做什么:

                         ` catch (Exception e)
                        {
                            Console.WriteLine(e.Message);
                            bDownloadError = true;
                        }
                        finally
                        {
                            if (bDownloadError)
                            {
                                Console.WriteLine("Error in downloading file: " + fileName);
                                Console.WriteLine("Moving to next file");
                            }

                        }
                        if (!bDownloadError)
                        {
                            if (Program.beVerbose)
                            {
                                Console.WriteLine("Attaching " + fileName);
                            }
                            byte[] fileContents = MBSPSiteMap.ByteArrayFromFilePath(downloadPath);
                            newItem.Attachments.Add(fileName, fileContents);
                            File.Delete(downloadPath);
                        } `

我还添加了一些Console.WriteLine语句,让我知道系统在做什么。否则系统就会发挥作用,你没有很好的指示它正在做什么。

这个程序是一个很好的帮助,因为我必须移动770条记录,包含大约20列信息和几个附件。

感谢MICHAEL !!!!