【问题标题】:uSync Dropdown DataType IssueuSync 下拉数据类型问题
【发布时间】:2021-05-14 17:14:26
【问题描述】:

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

our.umbraco.com 网站上有一些旧问题说明了相同的问题,但它们似乎已得到修复。 这个issue我已经发过了,不过已经6天了,主题还在人工审批中。

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

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

Umbraco 版本 7.15.4

提前谢谢你。

最好的问候, 阿图尔

PS。我无法创建 USync 标签。如果有人会用它编辑将不胜感激!

【问题讨论】:

    标签: deployment content-management-system umbraco


    【解决方案1】:

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

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

    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, INT, 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 选择预值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-04-24
      • 2010-12-24
      • 2018-10-27
      • 2011-06-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多