微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

uSync 下拉数据类型问题

如何解决uSync 下拉数据类型问题

我有 2 个站点,开发分支和生产站点。在我的开发分支上,我使用了几个原型 DataType,它们可以通过带有几个颜色名称(如绿色、蓝色等)的简单下拉菜单进行配置。我有 300 个使用该数据类型(必填字段)的已发布节点。在 uSync 仪表板中导出“完全导出”,然后将整个 uSync 文件夹复制/粘贴到我的生产分支并单击“完全导入”后。导入完成后,我检查我的节点。除了下拉菜单之外,所有字段都在那里。

enter image description here

our.umbraco.com 网站上有一些旧问题说明了相同的问题,但它们似乎已修复。 我已经在那里发布了这个问题,但已经 6 天了,主题仍然是手动批准。

知道是什么导致了这个问题吗?

我正在使用 (uSync.BackOffice 4.0.16.0) (uSync.Core 6.0.15.0) [uSync.Content: 4.1.9.1]

Umbraco 版本 7.15.4

提前致谢。

最好的问候, 阿图尔

附注。我无法创建 USync 标签。如果有人用它进行编辑,我们将不胜感激!

解决方法

我会打开数据库并查看 cmsDataTypePreValues 表中的值。我怀疑 uSync 已经改变了你的预值。预值真的很棘手,而 uSync 在这种情况下会尽力而为。您会注意到 Umbraco 7 中的 uSync .def 文件不会在这些预值上记录任何唯一 ID。它们只是插入到数据库中并自动分配一个 id。这意味着如果删除并重新创建预值,它们将具有不同的 ID。如果 id 记录上的 cmsDataTypePreValues 字段选择了这些下拉预值,则可能是哪里出了问题。

使用以下查询查看数据类型的预值:

DECLARE @dataTypeNodeId AS INT = <dataTypeNodeId,INT,0>

SELECT *
FROM cmsDataType dt
INNER JOIN cmsDataTypePreValues pv
    ON pv.datatypeNodeId = dt.nodeId
WHERE dt.nodeId = @dataTypeNodeId 

比较您在此处看到的开发数据库和生产数据库之间的值。为了帮助您更好地了解数据的外观,您还可以运行此查询以查看实际选择的值是什么样的。查询太长是因为它过滤掉了旧版本的结果。这对您来说可能不太好用,因为您的数据类型在 Archetype 之内。希望它仍然可以让您了解所选下拉值在数据库中的实际外观。

DECLARE @dataTypeNodeId AS INT = <dataTypeNodeId,0>

SELECT TOP 1000 n.id,n.[text],n.[path],pt.[alias] AS 'property alias',dtn.id AS 'Datatype Id',dtn.[text] AS 'Datatype Name',dtn.uniqueID AS 'Datatype Guid',d.templateId,t.[alias] AS 'template alias',pd.dataInt,pd.dataDate,pd.DataNvarchar,pd.dataNtext,cv.VersionDate
FROM umbracoNode n
INNER JOIN cmsDocument d
    ON d.nodeId = n.id
INNER JOIN cmsContentVersion cv
    ON cv.VersionId = d.versionId
INNER JOIN cmsPropertyData pd
    ON pd.contentNodeId = n.id AND pd.versionId = d.versionId
INNER JOIN cmsPropertyType pt
    ON pt.id = pd.propertytypeid
INNER JOIN cmsDataType dt
    ON dt.nodeId = pt.dataTypeId
INNER JOIN umbracoNode dtn
    ON dtn.id = dt.nodeId
LEFT OUTER JOIN cmsTemplate t
    ON t.nodeId = d.templateId
WHERE d.newest = 1
  AND dtn.id = @dataTypeNodeId

您可以尝试手动修复数据库中的预值条目。我在使用 Umbraco 下拉菜单时遇到了足够多的预值问题,因此我总是尝试使用 nuPickers 之类的东西来避免通过 id 选择预值。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。