2016-11-19 61 views
3

我試圖從較舊的Orchard數據庫導出數據,並且在查找存儲博客文章內容的表時遇到問題。我嘗試過使用許多不同的'搜索所有列'的搜索結果來搜索所有表和列,但是沒有從帖子本身找到文本。果園:在哪個表格中存儲博客文章

如果我有一個博客文章,其中的開頭句子是: 這句話包含一個獨特的詞。

我會期望至少有一個'搜索所有列'的例子已經出現了一個表/列。但到目前爲止,沒有一個。

THX

+0

請注意,被推薦使用導出功能的已刪除答案實際上是正確的答案。非常沮喪地直接在SQL查詢Orchard中的數據庫。在內容項中搜索條款也不適合用於SQL:Orchard包含Lucene搜索,它應該用於這種全文搜索。 –

回答

3
基於兩個表, ContentItemRecordContentItemVersionRecord,其存儲元數據內容的項目,如 BlogPost,並且由多個部分內置這些內容項

果園存儲數據,每個部分都有它的表之間的關係項目和它的部分是基於Id(如果未牽伸)或ContentItemRecord_Id(如牽伸)如果我們把BlogPost型爲例,它從TitlePart建,BodyPartAutoroutePartCommonPart,你婉列

t選擇帖子的所有數據(id = 90),則可以在TitlePartRecord表(ContentItemRecord_Id = 90)中找到它的標題,它的正文在BodyPartRecord表中與標題部分記錄具有相同的關係,並且AutorouteRecord中的路由部分表具有相同的關係,以及CommonPartRecord(Id = 90)中的共同元數據。

這是從Orchard數據庫提取數據的方式,希望這會對你有所幫助。

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 

,這是rightsolution

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 
     )