这可能是我遇到过的最模糊的存储内容的方式。在对数据库执行文本搜索后,我终于找到了内容的存储位置,但这并不是一个简单的过程。
Pages的主记录好像是sf_page_node,有相关的表:
- sf_object_data(page_id 与 sf_page_node.content_id 相关)
- sf_draft_pages(page_id 与 sf_page_node.content_id 相关)
- sf_page_data(content_id 与 sf_page_node.content_id 相关)
- sf_control_properties(control_id 与 sf_object_data.id 相关)
因此,您可以通过如下查询获得所需的信息:
select * from
[sf_page_node]
join sf_object_data on sf_page_node.content_id = sf_object_data.page_id
join sf_control_properties on sf_object_data.id = sf_control_properties.control_id
其他需要考虑的事项:
- parent_id 字段与 sf_page_node 表相关,因此如果您正在编写脚本,请务必同时查询
- 页面可能有横幅图像,您将选择“place_holder”值作为“BannerHolder”,标题为“图像”。图像可能以 blob 形式存储在 sf_media_content 中,您应该单独处理。“ImageId”的“nme”值将在“val”列中有一个 GUID。您可以使用此值作为“content_id”查询 sf_media_content,实际的二进制数据存储在 sf_chunks 中,它们与“file_id”相关
考虑到迁移内容所需的内容,我修改后的查询如下:
select
original.content_id,
original.url_name_,
original.title_,
parent.id,
parent.url_name_,
parent.title_,
place_holder,
sf_object_data.caption_,
sf_control_properties.nme,
val
from [sf_page_node] original
join sf_object_data on original.content_id = sf_object_data.page_id
join sf_control_properties on sf_object_data.id = sf_control_properties.control_id
join sf_page_node parent on original.parent_id = parent.id
我希望这可以帮助别人!