Newer
Older
gitbucket_jkp / src / main / resources / update / gitbucket-core_4.38.xml
<?xml version="1.0" encoding="UTF-8"?>
<changeSet>
  <!--================================================================================================-->
  <!-- CUSTOM_FIELD -->
  <!--================================================================================================-->
  <createTable tableName="CUSTOM_FIELD">
    <column name="USER_NAME" type="varchar(100)" nullable="false"/>
    <column name="REPOSITORY_NAME" type="varchar(100)" nullable="false"/>
    <column name="FIELD_ID" type="int" nullable="false" autoIncrement="true" unique="true"/>
    <column name="FIELD_NAME" type="varchar(100)" nullable="false"/>
    <column name="FIELD_TYPE" type="varchar(100)" nullable="false"/>
    <column name="ENABLE_FOR_ISSUES" type="boolean" nullable="false"/>
    <column name="ENABLE_FOR_PULL_REQUESTS" type="boolean" nullable="false"/>
  </createTable>
  <addPrimaryKey constraintName="IDX_CUSTOM_FIELD_PK" tableName="CUSTOM_FIELD" columnNames="USER_NAME, REPOSITORY_NAME, FIELD_ID"/>
  <addForeignKeyConstraint constraintName="IDX_CUSTOM_FIELD_FK0" baseTableName="CUSTOM_FIELD" baseColumnNames="USER_NAME, REPOSITORY_NAME" referencedTableName="REPOSITORY" referencedColumnNames="USER_NAME, REPOSITORY_NAME"/>

  <!--================================================================================================-->
  <!-- ISSUE_CUSTOM_FIELD -->
  <!--================================================================================================-->
  <createTable tableName="ISSUE_CUSTOM_FIELD">
    <column name="USER_NAME" type="varchar(100)" nullable="false"/>
    <column name="REPOSITORY_NAME" type="varchar(100)" nullable="false"/>
    <column name="ISSUE_ID" type="int" nullable="false"/>
    <column name="FIELD_ID" type="int" nullable="false"/>
    <column name="VALUE" type="varchar(200)" nullable="true"/>
  </createTable>
  <addPrimaryKey constraintName="IDX_ISSUE_CUSTOM_FIELD_PK" tableName="ISSUE_CUSTOM_FIELD" columnNames="USER_NAME, REPOSITORY_NAME, ISSUE_ID, FIELD_ID"/>
  <addForeignKeyConstraint constraintName="IDX_ISSUE_CUSTOM_FIELD_FK0" baseTableName="ISSUE_CUSTOM_FIELD" baseColumnNames="USER_NAME, REPOSITORY_NAME, ISSUE_ID" referencedTableName="ISSUE" referencedColumnNames="USER_NAME, REPOSITORY_NAME, ISSUE_ID"/>
  <addForeignKeyConstraint constraintName="IDX_ISSUE_CUSTOM_FIELD_FK1" baseTableName="ISSUE_CUSTOM_FIELD" baseColumnNames="USER_NAME, REPOSITORY_NAME, FIELD_ID" referencedTableName="CUSTOM_FIELD" referencedColumnNames="USER_NAME, REPOSITORY_NAME, FIELD_ID"/>

  <!--================================================================================================-->
  <!-- ISSUE_ASSIGNEE -->
  <!--================================================================================================-->
  <createTable tableName="ISSUE_ASSIGNEE">
    <column name="USER_NAME" type="varchar(100)" nullable="false"/>
    <column name="REPOSITORY_NAME" type="varchar(100)" nullable="false"/>
    <column name="ISSUE_ID" type="int" nullable="false"/>
    <column name="ASSIGNEE_USER_NAME" type="varchar(100)" nullable="false"/>
  </createTable>
  <addPrimaryKey constraintName="IDX_ISSUE_ASSIGNEE_PK" tableName="ISSUE_ASSIGNEE" columnNames="USER_NAME, REPOSITORY_NAME, ISSUE_ID, ASSIGNEE_USER_NAME"/>
  <addForeignKeyConstraint constraintName="IDX_ISSUE_ASSIGNEE_FK0" baseTableName="ISSUE_ASSIGNEE" baseColumnNames="USER_NAME, REPOSITORY_NAME, ISSUE_ID" referencedTableName="ISSUE" referencedColumnNames="USER_NAME, REPOSITORY_NAME, ISSUE_ID"/>
  <!--
  <addForeignKeyConstraint constraintName="IDX_ISSUE_ASSIGNEE_FK1" baseTableName="ISSUE_ASSIGNEE" baseColumnNames="ASSIGNEE_USER_NAME" referencedTableName="ACCOUNT" referencedColumnNames="USER_NAME"/>
  -->

  <sql>
    INSERT INTO ISSUE_ASSIGNEE (USER_NAME, REPOSITORY_NAME, ISSUE_ID, ASSIGNEE_USER_NAME)
      SELECT USER_NAME, REPOSITORY_NAME, ISSUE_ID, ASSIGNED_USER_NAME FROM ISSUE WHERE ASSIGNED_USER_NAME IS NOT NULL
  </sql>

  <dropColumn tableName="ISSUE" columnName="ASSIGNED_USER_NAME"/>
</changeSet>