Orchard:在什么表中存储了Blog帖子

时间:2016-11-19 00:17:36

标签: orchardcms

我尝试从较旧的Orchard数据库导出数据,但在查找存储博客文章内容的表时遇到问题。我尝试过使用多种不同的搜索所有列' spocs搜索所有表和列但是没有从帖子本身找到文本。

如果我有一篇博文,开头的句子是: 这句话包含一个独特的词。

我本来期望至少有一个'搜索所有列'已经打开表/列的示例。但到目前为止,没有人。

THX

3 个答案:

答案 0 :(得分:3)

Orchard存储基于两个表ContentItemRecordContentItemVersionRecord的数据,这两个表存储内容项的元数据,如BlogPost,这些内容项由多个部分构建,每个部分都有它表格以及项目与其部分之间的关​​系基于Id(如果不是可绘制的)或ContentItemRecord_Id(如果可绘制的)列

如果我们以BlogPost类型为例,它是从TitlePartBodyPartAutoroutePartCommonPart构建的,并且您想要选择所有数据post(id = 90),然后你可以在TitlePartRecord表(ContentItemRecord_Id = 90)中找到它的标题,并在BodyPartRecord表中找到它的正文,与title部分记录具有相同的关系,和AutorouteRecord表中具有相同关系的路径部分,以及CommonPartRecord中的公共元数据(Id = 90)。

这是从Orchard数据库中提取数据的方法,希望这对您有所帮助。

答案 1 :(得分:3)

Tnx到@mdameer ...... 而madmeer答案的相关问题是:

 SELECT * FROM dbo.default_Title_TitlePartRecord 
 inner join dbo.default_Orchard_Framework_ContentItemRecord on 
 dbo.default_Title_TitlePartRecord.ContentItemRecord_id=dbo.default_Orchard_Framework_ContentItemRecord.Id 
 inner join dbo.default_Common_BodyPartRecord on 
 dbo.default_Common_BodyPartRecord.ContentItemRecord_id=dbo.default_Orchard_Framework_ContentItemRecord.Id
 where dbo.default_Title_TitlePartRecord.ContentItemRecord_id=90

这是权利解决方案

答案 2 :(得分:0)

以防它可能对其他人有用,以下是用于将Orchard实例迁移到Umbraco的实际SQL查询。它来源于mdameerand和Iman Salehi的优秀答案:

SELECT t.Title, f.Data, b.Text  FROM dbo.Title_TitlePartRecord t
 inner join dbo.Orchard_Framework_ContentItemRecord f on 
 t.ContentItemRecord_id=f.Id 
  inner join dbo.Common_BodyPartRecord b on 
 b.ContentItemRecord_id=f.Id
  AND  b.Id = (
            SELECT MAX(m2.Id) 
            FROM dbo.Common_BodyPartRecord m2 
            WHERE m2.ContentItemRecord_id = f.Id
        )
  AND  t.Id = (
            SELECT MAX(m2.Id) 
            FROM dbo.Title_TitlePartRecord m2 
            WHERE m2.ContentItemRecord_id = f.Id
        )