Skip to content

Boîte à outils SQL

Généré le 2026-02-13 04:39 UTC

Ce document regroupe des requêtes utiles pour diagnostiquer des problèmes structurels dans la base de données Umbraco : doublons, relations cassées, orphelins, etc.

⚠️ Toujours faire une sauvegarde avant modification. ⚠️ Éviter les DELETE sans validation préalable.


Trouver les propriétés en double dans un Document Type

sql
SELECT 
    ct.alias AS ContentType,
    pt.alias AS PropertyAlias,
    COUNT(*) AS count
FROM cmsPropertyType pt
JOIN cmsContentType ct ON ct.nodeId = pt.contentTypeId
GROUP BY ct.alias, pt.alias
HAVING COUNT(*) > 1
ORDER BY ct.alias, pt.alias;

Lister les propriétés d’un type précis

sql
SELECT id, alias, dataTypeId, sortOrder
FROM cmsPropertyType
WHERE contentTypeId = (
    SELECT nodeId FROM cmsContentType WHERE alias = 'ALIAS_ICI'
)
ORDER BY sortOrder;

Vérifier les usages d’une propriété avant suppression

sql
SELECT *
FROM umbracoPropertyData
WHERE propertyTypeId = ID_ICI;

Propriétés pointant vers un DataType inexistant

sql
SELECT pt.id, pt.alias, pt.dataTypeId
FROM cmsPropertyType pt
LEFT JOIN umbracoDataType dt ON dt.nodeId = pt.dataTypeId
WHERE dt.nodeId IS NULL;

Propriétés liées à un Content Type inexistant

sql
SELECT pt.id, pt.alias, pt.contentTypeId
FROM cmsPropertyType pt
LEFT JOIN cmsContentType ct ON ct.nodeId = pt.contentTypeId
WHERE ct.nodeId IS NULL;

Groupes de propriétés orphelins

sql
SELECT g.*
FROM cmsPropertyTypeGroup g
LEFT JOIN cmsContentType ct ON ct.nodeId = g.contenttypeNodeId
WHERE ct.nodeId IS NULL;

Vérifier qu’un Element / DocType existe une seule fois

sql
SELECT alias, COUNT(*)
FROM cmsContentType
WHERE alias = 'ALIAS_ICI'
GROUP BY alias;

Voir les DataTypes utilisés par un type

sql
SELECT pt.alias, dt.propertyEditorAlias, dt.dbType
FROM cmsPropertyType pt
JOIN umbracoDataType dt ON dt.nodeId = pt.dataTypeId
WHERE pt.contentTypeId = (
    SELECT nodeId FROM cmsContentType WHERE alias = 'ALIAS_ICI'
);

Exemple de suppression d’un doublon (à adapter !)

sql
DELETE FROM cmsPropertyType WHERE id = ID_A_SUPPRIMER;

Valeur blockgrid -> Pour angular

sql
SELECT pd.id, pt.Alias AS PropertyAlias, pd.textValue, pd.intValue, pd.dateValue
FROM dbo.umbracoPropertyData pd

JOIN dbo.cmsPropertyType pt ON pt.id = pd.propertyTypeId

WHERE pt.Alias = 'pageWidgets' 
  AND pd.textValue IS NOT NULL 
  AND textValue LIKE '%mon titre%' 

ORDER BY pt.Alias;

Conseils d’exploitation

  • Les aliases doivent être uniques dans un même type.
  • Les scripts SQL doivent être idempotents (IF NOT EXISTS).
  • Après modification : recycler l’application.
  • Si le backoffice tombe dans Settings, suspecter souvent :
    • doublons
    • datatype manquant
    • plugin/composer qui ne démarre plus.

Contributors

The avatar of contributor named as Clément Favre Clément Favre

Changelog