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