2016-11-19 3 views
3

Я пытаюсь экспортировать данные из старого Orchard db, и у меня возникают проблемы с поиском, в какой таблице хранится содержимое сообщения в блоге. Я попытался использовать несколько разных «Искать все столбцы» для поиска всех таблиц и столбцов, но не нашел текст из самого сообщения.Orchard: В какой таблице хранится запись в блоге

Если у меня есть сообщение в блоге, где начальное предложение: Это предложение содержит уникальное слово.

Я бы ожидал, что хотя бы один из примеров «Искать все столбцы» появился в таблице/столбце. Но пока нет.

ТНХ

+0

Пожалуйста, обратите внимание, что удаленный ответ, который рекомендует использовать функцию экспорта, на самом деле было правильным. Запросить базу данных в Orchard прямо в SQL очень не рекомендуется. Поиск терминов в элементах контента также не подходит для SQL: Orchard включает поиск Lucene, что и должно использоваться для таких полнотекстовых поисков. –

ответ

3

Orchard хранения данных на основе двух таблиц, ContentItemRecord и ContentItemVersionRecord, которые хранят метаданные для элементов контента, как BlogPost, и эти предметы контента, построенные из нескольких частей, каждая часть имеет свою таблицу и соотношение между товар и его детали основаны на Id (если не draftable) или ContentItemRecord_Id (если draftable) столбцы

если мы возьмем BlogPost типа как пример, который построен из TitlePart, BodyPart, AutoroutePart и CommonPart, и вы Вань 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

Только в случае, если это может быть полезным для других, следующие это фактический запрос SQL, используемый для переноса экземпляра Orchard в Umbraco. Он является производным от превосходных ответов по mdameerand и Иман Салехи:

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 
     ) 
Смежные вопросы