上周我宣布发布DNN博客测试版.从那以后,我们“沉默”地发布了BETA 3,其中包括一些bug的修复,以及BETA测试者发现的问题,以及一些我们自己内部发现的问题。
在这篇博客文章中,我想分享一个我们在Beta版本中包含的SQL脚本,它很少受到媒体的关注,因此可能是一个你从未(理所当然地)关注过的脚本。SQL脚本位于以下文件夹:“DesktopModules /博客/升级/ 03.05.02_category_conversion.sql”。
它能做什么?
正如名称(03.05.02_category_conversion.sql)所暗示的那样,这个脚本将转换给定的所有子博客门户网站类别。当你在不为了运行这个脚本并维护遗留子博客,在执行这个脚本时应该非常小心。
请注意,一旦你运行这个,就没有回头路;备份您的数据库执行此脚本,以避免任何数据丢失。
为了让你清楚地了解脚本对你的数据做了什么,我将概述一个一步一步的执行路径,它需要擦除石板,并开始将你的博客转换为新的分类范式:
- 删除任何现有的类别对于给定的门户。
- 删除任何现有的参考资料博客文章类别。
- 插入任何现有的子博客成的类别表(孩子博客的标题成为新类别的名称)。
- 参考文献任何现有的的帖子在儿童博客下找到的来新创建的类别.
- 集所有权以前添加在子博客下的博客文章回到父博客.
- 删除所有子博客
如何运行脚本:
在开始之前,定位PortalId您想要升级其博客的门户:
- 在脚本的顶部,设置值@portalid到门户的ID
- 使用描述性名称将此脚本保存在本地机器上,例如“myportal_03.05.02_category_conversion.sql”
- 使用主机帐户登录您的站点
- 导航到HOST > SQL
- 使用“浏览”按钮选择您保存的文件
- 选择“以脚本形式运行”
- 执行SQL
在这一点上,儿童博客已经消失了。你在门户网站上的博客现在完全转换为新版本04.00.00 -再说一次,没有回头路,当然,除非你想恢复你的数据库。
接下来是什么?
简单:自动化这个过程。还需要我多说吗?
我们意识到这个手工过程并不理想,但我们还没有机会将其自动化;好的一面是,它迫使我写了这篇详细的博客文章,揭示了升级过程中到底发生了什么。
我们希望在我们的下一轮测试中包括自动化过程-哦,是的,我们计划更多的这样的过程。
最后,正如我在之前的博客中提到的,我们需要您帮助我们进行测试。测试这个场景(将子博客转换为类别)对于这个主要版本的成功是极其重要的,我们希望确保我们在第一次就把它做好!
(更新1/14/2010)
自动化流程刚刚完成。在BETA 4中,您将在Module Options页面上找到一个按钮,用于迁移所有门户的子博客。以下是对上述流程的一些更改:
- 按钮上有一个警告。
- 该脚本是非破坏性的(即管理员可以任意多次运行此过程)
- 脚本内置在模块中,不再是需要执行的文件