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