Sitecore Powershell控制台 - 将媒体项从一个数据库复制到另一个数据库

时间:2014-08-31 11:22:43

标签: powershell sitecore sitecore-media-library sitecore7.2

我们正在将Sitecore 6.6升级到7.2。升级的一部分是将所有媒体项目从6.6迁移到7.2。

我尝试创建一个包但是包大小太大而且在包安装上超时。

我在下面使用Powershell控制台找到了链接,其中显示了copy-item命令: http://blog.najmanowicz.com/2011/11/18/sample-scripts-for-sitecore-powershell-console

我附加了6.6到7.2版本,我可以访问6.6 DB。但是,copy-item似乎不支持不同的数据库。

有人可以帮助我如何使用SiteCore Powershell或类似方法将媒体项目从6.6迁移到7.2吗?

4 个答案:

答案 0 :(得分:3)

我发现Hedgehog TDS(有时是Razl)对此非常有用。

创建一个新的TDS项目(不要对其进行版本控制),并将所需的所有项目下载到本地计算机上。例如,您可以连接" Debug"构建到您的源6.6实例,以及"发布"构建到目标7.2实例。然后,您可以将项目同步到目标计算机。如果您有长时间的连接,一次同步一个或几个分支有时会很好。

关于这一点的好处是,您可以完全控制您的内容,并可以查看哪些字段已更新等。在更新过程中,将数据库的其他部分进行比较有时很有用好吧,只是为了确保您不会错过您对平台所做的任何更改。

因为我也提到了Razl:如果你有一个你知道应该从一个db传输到另一个db的整个分支(例如你描述的情况),我发现Razl非常好。 TDS有点慢,但更普遍 - 你可能已经拥有TDS许可证,因此可能不值得额外的Razl许可证。

答案 1 :(得分:2)

我的(非常大)媒体库有类似的迁移问题。软件包似乎在2GB标记周围爆炸,而是序列化项目:

  1. 从/ Data / Serialization
  2. 删除所有内容
  3. 打开媒体库。确保您拥有“开发人员”选项卡 显示(右键单击工具栏上的某个位置并启用它 否则)
  4. 选择根媒体项,然后选择序列化树
  5. 等待...
  6. 将序列化文件从/ Data / Serialization复制到新文件 服务器
  7. 从工具栏中选择更新或还原树,具体取决于您的要求
  8. 利润。
  9. 您可以在Brian Pedersen的Sitecore Serialization Guidethis post中找到更多信息

    你也应该能够在Powershell中做到这一点(根据我的理解)。你需要:

    • 将数据库添加到connectionString.config
    • 将该数据库添加到您的web.config到<sitecore><databases><database>。您可以复制现有主节点并重命名id属性以匹配您的连接名称
    • 您的旧数据库现在应该连接到Sitecore界面,您可以检查它是否存在于桌面右侧的数据库选择器列表中
    • powershell命令现在需要一个“from”和“to”位置。假设您的数据库名为“legacy_master”,以下内容应该有效:

      copy-item "master:\media library\*" "legacy_master:\media library\"

答案 2 :(得分:1)

我从一个数据库到另一个数据库just added item transfer,因此您可以在Sitecore PowerShell Extensions 3.0开始的数据库之间复制项目。谢谢你的好主意!

答案 3 :(得分:0)

只需添加其他选项,即可使用Revolver执行此类任务。

警告:首先在测试环境中尝试此操作

如果我们假设:

  • 上下文项是媒体库项目
  • 当前数据库是主
  • 目标数据库名为master72

然后这样的事情应该有效:

cp -r -n master72/sitecore/