以编程方式将Umbraco数据从开发站点迁移到实时站点

时间:2011-04-27 12:52:54

标签: umbraco

我处于这样的情况:我负责向Umbraco提出申请或扩展,使后端用户能够将他们在开发站点上的更改迁移到实际站点。这种迁移应该每天发生一次,或者当后端用户按下后端的按钮时。

我知道Umbraco在Courier包中提供了这个,但显然它对这种情况不起作用。

更多细节:

开发和实时站点都驻留在同一台服务器上,数据库也是如此。数据只需要从一个文件夹传输到另一个文件夹,并与数据库中的表格相同。

我可以看到有两种解决方法。

1)您执行完全迁移,基本上拆除了实时数据库并将其更新为新版本。然后,您也可以复制所需的所有文件。

2)您创建了一个包含文档类型的包,依此类推,您在开发者网站上进行了更改,并在实际网站上加载该包。

数字1的问题在于,在完成传输后,您似乎必须重新发布整个网站。据我所知,你可以通过网络服务做到这一点,但如果我可以使用控制台应用程序,我会更喜欢它。

我的问题是:

有没有办法以编程方式创建包并以相同的方式加载它们,或者以编程方式实现此迁移的最佳方法是什么?

任何建议都会非常感激,因为我有点不知所措:)

修改

我最终实际上做了一个完整的镜像,因为我使用Robocopy传输文件夹中已更改的所有文件,然后我用SQL命令备份了开发站点,然后我恢复了它使用RESTORE SQL命令在实时数据库中。

需要在SQL命令中完成一些设置,但它运行顺畅,完整传输时间缩短为10秒,具体取决于已更改的文件数。

最后一件事。如果您希望更改可见,则需要重新加载Umbraco。您可以通过手动修改web.config文件或以编程方式设置LastWriteTime来完成此操作。

1 个答案:

答案 0 :(得分:4)

您始终可以创建一个用户控件来处理整个站点的重新发布,您可以从控制台应用程序调用。

你也可以加入the Courier 2 beta程序,这确实足够好(无论如何,我还没有自己测试过功能)。

另一种方法可能是将所有节点作为xml提要提供,并使用CMSImport的调度功能自动迁移节点。

这是一个艰难的选择,还有很多选择还没有银弹。我很希望Courier 2能够为此做到完美,并热切期待它的释放。