Newer
Older
gitbucket_jkp / src / main / resources / update / gitbucket-core_4.14.xml
@Naoki Takezoe Naoki Takezoe on 3 May 2022 3 KB Refactor old migrations (#3056)
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <changeSet>
  3. <createTable tableName="PRIORITY">
  4. <column name="USER_NAME" type="varchar(100)" nullable="false"/>
  5. <column name="REPOSITORY_NAME" type="varchar(100)" nullable="false"/>
  6. <column name="PRIORITY_ID" type="int" nullable="false" autoIncrement="true" unique="true"/>
  7. <column name="PRIORITY_NAME" type="varchar(100)" nullable="false"/>
  8. <column name="DESCRIPTION" type="varchar(255)" nullable="true"/>
  9. <column name="ORDERING" type="int" nullable="false"/>
  10. <column name="IS_DEFAULT" type="boolean" nullable="false"/>
  11. <column name="COLOR" type="char(6)" nullable="false"/>
  12. </createTable>
  13.  
  14. <addPrimaryKey constraintName="IDX_PRIORITY_PK" tableName="PRIORITY" columnNames="USER_NAME, REPOSITORY_NAME, PRIORITY_ID"/>
  15. <addForeignKeyConstraint constraintName="IDX_PRIORITY_FK0" baseTableName="PRIORITY" baseColumnNames="USER_NAME, REPOSITORY_NAME" referencedTableName="REPOSITORY" referencedColumnNames="USER_NAME, REPOSITORY_NAME"/>
  16.  
  17. <addColumn tableName="ISSUE">
  18. <column name="PRIORITY_ID" type="int" nullable="true" />
  19. </addColumn>
  20.  
  21. <addForeignKeyConstraint constraintName="IDX_ISSUE_FK3" baseTableName="ISSUE" baseColumnNames="PRIORITY_ID" referencedTableName="PRIORITY" referencedColumnNames="PRIORITY_ID"/>
  22.  
  23. <createTable tableName="ACCOUNT_WEB_HOOK">
  24. <column name="USER_NAME" type="varchar(100)" nullable="false"/>
  25. <column name="URL" type="varchar(200)" nullable="false"/>
  26. <column name="TOKEN" type="varchar(100)" nullable="true"/>
  27. <column name="CTYPE" type="varchar(10)" nullable="true"/>
  28. </createTable>
  29.  
  30. <addPrimaryKey constraintName="IDX_ACCOUNT_WEB_HOOK_PK" tableName="ACCOUNT_WEB_HOOK" columnNames="USER_NAME, URL"/>
  31. <addForeignKeyConstraint constraintName="IDX_ACCOUNT_WEB_HOOK_FK0" baseTableName="ACCOUNT_WEB_HOOK" baseColumnNames="USER_NAME" referencedTableName="ACCOUNT" referencedColumnNames="USER_NAME"/>
  32.  
  33. <createTable tableName="ACCOUNT_WEB_HOOK_EVENT">
  34. <column name="USER_NAME" type="varchar(100)" nullable="false"/>
  35. <column name="URL" type="varchar(200)" nullable="false"/>
  36. <column name="EVENT" type="varchar(30)" nullable="false"/>
  37. </createTable>
  38.  
  39. <sql>
  40. CREATE OR REPLACE VIEW ISSUE_OUTLINE_VIEW AS
  41. SELECT
  42. A.USER_NAME,
  43. A.REPOSITORY_NAME,
  44. A.ISSUE_ID,
  45. COALESCE(B.COMMENT_COUNT, 0) + COALESCE(C.COMMENT_COUNT, 0) AS COMMENT_COUNT,
  46. COALESCE(D.ORDERING, 9999) AS PRIORITY
  47. FROM ISSUE A
  48. LEFT OUTER JOIN (
  49. SELECT USER_NAME, REPOSITORY_NAME, ISSUE_ID, COUNT(COMMENT_ID) AS COMMENT_COUNT FROM ISSUE_COMMENT
  50. WHERE ACTION IN ('comment', 'close_comment', 'reopen_comment')
  51. GROUP BY USER_NAME, REPOSITORY_NAME, ISSUE_ID
  52. ) B
  53. ON (A.USER_NAME = B.USER_NAME AND A.REPOSITORY_NAME = B.REPOSITORY_NAME AND A.ISSUE_ID = B.ISSUE_ID)
  54. LEFT OUTER JOIN (
  55. SELECT USER_NAME, REPOSITORY_NAME, ISSUE_ID, COUNT(COMMENT_ID) AS COMMENT_COUNT FROM COMMIT_COMMENT
  56. GROUP BY USER_NAME, REPOSITORY_NAME, ISSUE_ID
  57. ) C
  58. ON (A.USER_NAME = C.USER_NAME AND A.REPOSITORY_NAME = C.REPOSITORY_NAME AND A.ISSUE_ID = C.ISSUE_ID)
  59. LEFT OUTER JOIN PRIORITY D
  60. ON (A.PRIORITY_ID = D.PRIORITY_ID);
  61. </sql>
  62. </changeSet>