Sitefinity数据库中的内容存储在哪里?

时间:2017-02-14 12:46:18

标签: sitefinity sitefinity-5

我经过几个小时的难以分析的分析,成功地将1,000个新闻项目和其他内容从Sitefinity 5迁移到Wordpress,并且还有一些猜测,但还有一些项目仍然遗留下来。特别是页面。我知道很多内容都以非常模糊的方式存储,但必须有人之前已经做过这样的事情,并且可以引导我朝着正确的方向前进。

我的研究(以及对数据库的文本搜索)已找到页面标题等,但当我搜索内容时,我什么也得不到。我的直觉告诉我,内容是以二进制形式存储的,任何人都可以确认是否是这种情况吗?

Sitefinity文档仅在您是在Visual Studio中设置网站的.net开发人员时才有用。(就我所见)。

2 个答案:

答案 0 :(得分:10)

这可能是我遇到过的最容易混淆的存储内容的方式。在对数据库执行文本搜索之后,我终于找到了存储内容的位置,但这不是一个简单的过程。

Pages的主记录似乎是sf_page_node,有相关的表:

  • sf_object_data(page_id与sf_page_node.content_id相关)
  • sf_draft_pages(page_id与sf_page_node.content_id相关)
  • sf_page_data(content_id与sf_page_node.content_id相关)
  • sf_control_properties(control_id与sf_object_data.id相关)

所以你可以通过这样的查询得到你需要的信息:

series: [{
        data: [[0,10],[1,20],{x:1,y:30,color:'magenta'}],
        stacking: true,
        stack: 0,
    }, {
        data: [[0,10],[1,7],{x:1,y:3,color:'cyan'}],
        stacking: true,
        stack: 1
    }

需要考虑的其他事项:

  • parent_id字段与sf_page_node表相关,因此如果您正在编写脚本,请务必查询此字段
  • 页面可能有横幅图片,您将“place_holder”值选为“BannerHolder”,标题为“Image”图像可以存储为sf_media_content中的blob,您应该单独处理。 'ImageId'的“nme”值将在“val”列中具有GUID。您可以使用此值查询sf_media_content作为“content_id”,实际二进制数据存储在sf_chunks中,它们与“file_id”相关

我修改后的查询考虑了我迁移内容所需的内容如下:

select * from 
[sf_page_node]
join sf_object_data on sf_page_node.content_id = sf_object_data.page_id
join sf_control_properties on sf_object_data.id = sf_control_properties.control_id

我希望这有助于某人!

答案 1 :(得分:1)

在这种情况下,您不需要版本项 - 正如您已经发现的那样,它以二进制格式存储以前版本的页面。

当前的直播页面'数据在sf_control_properties和sf_object_data表中可用。您需要将它们与sf_page_data和sf_page_node一起加入,您将获得完整的图片。

根据您的要求,可能更容易对每个页面执行GET请求并解析返回的html响应。