DROP TABLE IF EXISTS PROTECTED_BRANCH; CREATE TABLE PROTECTED_BRANCH( USER_NAME VARCHAR(100) NOT NULL, REPOSITORY_NAME VARCHAR(100) NOT NULL, BRANCH VARCHAR(100) NOT NULL, STATUS_CHECK_ADMIN BOOLEAN NOT NULL DEFAULT false ); ALTER TABLE PROTECTED_BRANCH ADD CONSTRAINT IDX_PROTECTED_BRANCH_PK PRIMARY KEY (USER_NAME, REPOSITORY_NAME, BRANCH); ALTER TABLE PROTECTED_BRANCH ADD CONSTRAINT IDX_PROTECTED_BRANCH_FK0 FOREIGN KEY (USER_NAME, REPOSITORY_NAME) REFERENCES REPOSITORY (USER_NAME, REPOSITORY_NAME) ON DELETE CASCADE ON UPDATE CASCADE; DROP TABLE IF EXISTS PROTECTED_BRANCH_REQUIRE_CONTEXT; CREATE TABLE PROTECTED_BRANCH_REQUIRE_CONTEXT( USER_NAME VARCHAR(100) NOT NULL, REPOSITORY_NAME VARCHAR(100) NOT NULL, BRANCH VARCHAR(100) NOT NULL, CONTEXT VARCHAR(255) NOT NULL ); ALTER TABLE PROTECTED_BRANCH_REQUIRE_CONTEXT ADD CONSTRAINT IDX_PROTECTED_BRANCH_REQUIRE_CONTEXT_PK PRIMARY KEY (USER_NAME, REPOSITORY_NAME, BRANCH, CONTEXT); ALTER TABLE PROTECTED_BRANCH_REQUIRE_CONTEXT ADD CONSTRAINT IDX_PROTECTED_BRANCH_REQUIRE_CONTEXT_FK0 FOREIGN KEY (USER_NAME, REPOSITORY_NAME, BRANCH) REFERENCES PROTECTED_BRANCH (USER_NAME, REPOSITORY_NAME, BRANCH) ON DELETE CASCADE ON UPDATE CASCADE;