数据库中的jql信息

jql information in database

这是我得到

结果的 jql 查询
assignee in membersOf("project")

这将return属于项目的成员的问题。

我想知道这个数据(或者哪个成员属于哪个proj的link)存储在jira数据库的哪个table?

群组成员资格

群组成员资格存储在 CWD_MEMBERSHIP table。

示例:

SELECT LOWER_CHILD_NAME 
FROM CWD_MEMBERSHIP 
WHERE MEMBERSHIP_TYPE = 'GROUP_USER' 
AND LOWER_PARENT_NAME = 'jira-administrators';

示例 2,同时获取用户信息:

SELECT
   U.*
FROM
   CWD_MEMBERSHIP M
INNER JOIN CWD_USER U
ON
   M.LOWER_CHILD_NAME = U.LOWER_USER_NAME
WHERE
   M.MEMBERSHIP_TYPE   = 'GROUP_USER' AND
   M.LOWER_PARENT_NAME = 'jira-administrators';

项目角色成员资格

然而,项目角色成员在 PROJECTROLEPROJECTROLEACTOR table 中。

示例:

SELECT A.ROLETYPEPARAMETER AS USERNAME, R.NAME AS ROLENAME, P.PKEY || ' - ' || P.PNAME AS PROJECTNAME
FROM PROJECTROLEACTOR A
INNER JOIN PROJECTROLE R ON A.PROJECTROLEID = R.ID
INNER JOIN PROJECT P ON A.PID = P.ID
WHERE P.PKEY = 'YOUR_PKEY_COMES_HERE'
ORDER BY 3, 1, 2;

示例 2,获取明确分配给项目角色的用户(不通过组):

SELECT A.ROLETYPEPARAMETER AS USERNAME, R.NAME AS ROLENAME, P.PKEY || ' - ' || P.PNAME AS PROJECTNAME
FROM PROJECTROLEACTOR A
INNER JOIN PROJECTROLE R ON A.PROJECTROLEID = R.ID
INNER JOIN PROJECT P ON A.PID = P.ID
INNER JOIN CWD_USER U ON LOWER(A.ROLETYPEPARAMETER) = U.LOWER_USER_NAME
ORDER BY 3, 1, 2;

问题变更历史

要获取问题历史记录,您需要将 changegroupchangeitem table 加入 jiraissue。 Changegroup 存储更改者和更改时间,changeitem 包含旧数据和新数据,以及更改的字段。

前受让人名单示例:

SELECT
   CG.AUTHOR   AS CHANGE_USER ,
   CG.CREATED  AS CHANGE_WHEN ,
   CI.FIELD    AS CHANGED_WHAT,
   CI.OLDVALUE AS CHANGED_FROM,
   CI.NEWVALUE AS CHANGED_TO
FROM
   JIRAISSUE JI
INNER JOIN CHANGEGROUP CG
ON
   JI.ID = CG.ISSUEID
INNER JOIN CHANGEITEM CI
ON
   CG.ID = CI.GROUPID
WHERE
   JI.PROJECT   = 10100 AND
   JI.ISSUENUM  = 1234 AND
   CI.FIELDTYPE = 'jira' AND
   CI.FIELD     = 'assignee'
ORDER BY
   CG.CREATED ASC;

最后一行的(最新的 creatednewvalue 必须匹配 jiraissueassignee-s 值。