I have several custom fields (around 250) and some of them are not being used anymore (but may have some value or not).
JIRA customfield interface is not very good to find inactive custom fields (like it work to find inactive workflows).
I would like to query database to list all customfields (id or name) that are not applied in any screens.
After that I will check if the field has some value (JQL) and if it is OK to be deleted (maybe the value was migrated to a new field).
I'm not sure for the SQL, but in the JQL, I have used the query below to cleanup my 500+ custom fields before
"Custom Field" is not NULL
The results of this query will be all the issues that have this custom field. If it returned 0 results, then you may 86 that custom field without any worries.
You have to be careful with that, even though the fields maybe empty if you have a workflow that sets the value, then you can break the workflow when it tries to set the customfield you just deleted. I found this out the hard way
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You can use Custom Field Manager app for that
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
SELECT CF.cfname, count(CV.ISSUE) FROM customfield CF join customfieldvalue CV on CF.ID = CV.CUSTOMFIELD
group by CF.cfname
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
That tells you fields used on issues, but not whether a field is in use on a screen (or in other places like workflows)
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Here's some more SQL I run to check for use of customfields
Dashboard gadgets
SELECT *
FROM
gadgetuserpreference
INNER JOIN portletconfiguration ON portletconfiguration.id = gadgetuserpreference.portletconfiguration
INNER JOIN portalpage ON portalpage.id = portletconfiguration.portalpage
WHERE
userprefvalue LIKE '%12340'
Filters
select * from searchrequest s where s.reqcontent like '%MyCFName%' or s.reqcontent like '%cf[12940]%'
Screens
SELECT cf.id, fsli.fieldidentifier, cf.cfname, fs.name, fst.name FROM fieldscreenlayoutitem fsli
INNER JOIN fieldscreentab fst
ON fsli.fieldscreentab = fst.id
INNER JOIN fieldscreen fs
ON fst.fieldscreen = fs.id
INNER JOIN customfield cf
ON fsli.fieldidentifier = 'customfield_' || cf.id::text
WHERE fsli.fieldidentifier LIKE '%customfield_10009%'
Workflows
select * from jiraworkflows wf where wf.descriptor like '%customfield_12940%';
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.