Orchardcms 乌节:博客文章存储在哪个表中
我试图从旧的Orchard数据库导出数据,但在查找存储博客文章内容的表时遇到问题。我尝试过使用许多不同的“搜索所有列”spoc来搜索所有表和列,但没有从帖子本身中找到文本 如果我有一篇博客文章的开头是: 这个句子包含一个独特的词 我希望在各种“搜索所有列”示例中至少有一个出现了表/列。但到目前为止,还没有Orchardcms 乌节:博客文章存储在哪个表中,orchardcms,Orchardcms,我试图从旧的Orchard数据库导出数据,但在查找存储博客文章内容的表时遇到问题。我尝试过使用许多不同的“搜索所有列”spoc来搜索所有表和列,但没有从帖子本身中找到文本 如果我有一篇博客文章的开头是: 这个句子包含一个独特的词 我希望在各种“搜索所有列”示例中至少有一个出现了表/列。但到目前为止,还没有 thxOrchard基于两个表存储数据,ContentItemRecord和ContentItemVersionRecord,这两个表存储内容项(如BlogPost)的元数据,这些内容项由多个
thxOrchard基于两个表存储数据,
ContentItemRecord
和ContentItemVersionRecord
,这两个表存储内容项(如BlogPost
)的元数据,这些内容项由多个部分构建,每个部分都有自己的表,项目与其部分之间的关系基于Id
(如果不可拖动)或ContentItemRecord\u Id
(如果可拖动)列
如果我们以BlogPost
类型为例,它是从TitlePart
、BodyPart
、AutoroutePart
和CommonPart
构建的,并且您想要选择post的所有数据(id=90),那么您可以在TitlePartRecord
表中找到它的标题(ContentItemRecord\u id=90
),它在BodyPartRecord
表中的正文文本与标题部分记录具有相同的关系,在autoroutedrecord
表中的路由部分具有相同的关系,以及在CommonPartRecord
中的公共元数据(Id=90)
这是从Orchard数据库提取数据的方法,希望对您有所帮助。Tnx to@mdameer。。。
马德米尔回答的相关问题是:
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
这是正确的解决方案为了防止它对其他人有用,下面是用于将Orchard实例迁移到Umbraco的实际SQL查询。它源自Mdamerand和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
)
请注意,被删除的答案(建议使用导出功能)实际上是正确的答案。不鼓励直接在SQL中查询Orchard中的数据库。在内容项中搜索术语也不适合SQL:Orchard包括Lucene搜索,这是应该用于此类全文搜索的内容.