我尝试从较旧的Orchard数据库导出数据,但在查找存储博客文章内容的表时遇到问题。我尝试过使用多种不同的搜索所有列' spocs搜索所有表和列但是没有从帖子本身找到文本。
如果我有一篇博文,开头的句子是: 这句话包含一个独特的词。
我本来期望至少有一个'搜索所有列'已经打开表/列的示例。但到目前为止,没有人。
THX
答案 0 :(得分:3)
Orchard存储基于两个表ContentItemRecord
和ContentItemVersionRecord
的数据,这两个表存储内容项的元数据,如BlogPost
,这些内容项由多个部分构建,每个部分都有它表格以及项目与其部分之间的关系基于Id
(如果不是可绘制的)或ContentItemRecord_Id
(如果可绘制的)列
如果我们以BlogPost
类型为例,它是从TitlePart
,BodyPart
,AutoroutePart
和CommonPart
构建的,并且您想要选择所有数据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
)