Commit 3eb2fe9f authored by David Surville's avatar David Surville
Browse files

Révision du nom des tables dans le mapping et les fichiers SQL pour plus de...

Révision du nom des tables dans le mapping et les fichiers SQL pour plus de cohérence et écriture des scripts SQL de migration vers les périmètres
parent c1c4fafa
Loading
Loading
Loading
Loading
Loading
+157 −0
Original line number Diff line number Diff line
-- -----------------------------------------------------
-- TABLE UNICAEN_UTILISATEUR_ROLE
-- -----------------------------------------------------
RENAME <SEQ_NAME> TO UNICAEN_UTILISATEUR_ROLE_ID_SEQ;


-- -----------------------------------------------------
-- TABLE UNICAEN_UTILISATEUR_USER
-- -----------------------------------------------------
RENAME <SEQ_NAME> TO UNICAEN_UTILISATEUR_USER_ID_SEQ;


-- -----------------------------------------------------
-- TABLE UNICAEN_UTILISATEUR_USER_ROLE_LINKER
-- -----------------------------------------------------
CREATE SEQUENCE UNICAEN_UTILISATEUR_USER_ROLE_LINKER_ID_SEQ NOCYCLE START WITH 1 INCREMENT BY 1 MINVALUE 0;

CREATE TABLE UNICAEN_UTILISATEUR_USER_ROLE_LINKER (
  ID        NUMBER(*,0) NOT NULL,
  USER_ID   NUMBER(*,0) NOT NULL,
  ROLE_ID   NUMBER(*,0) NOT NULL
);

INSERT INTO UNICAEN_UTILISATEUR_USER_ROLE_LINKER (
  ID,
  USER_ID,
  ROLE_ID
)
WITH tmp AS (
  SELECT * FROM UNICAEN_UTILISATEUR_ROLE_LINKER
)
SELECT
  UNICAEN_UTILISATEUR_USER_ROLE_LINKER_ID_SEQ.nextval,
  tmp.USER_ID,
  tmp.ROLE_ID
FROM tmp;

DROP TABLE UNICAEN_UTILISATEUR_ROLE_LINKER;
ALTER TABLE UNICAEN_UTILISATEUR_USER_ROLE_LINKER ADD CONSTRAINT PK_UNICAEN_USER_ROLE_LINKER PRIMARY KEY (ID);
ALTER TABLE UNICAEN_UTILISATEUR_USER_ROLE_LINKER ADD CONSTRAINT UN_UNICAEN_USER_ROLE_LINKER UNIQUE (USER_ID, ROLE_ID);
ALTER TABLE UNICAEN_UTILISATEUR_USER_ROLE_LINKER ADD CONSTRAINT FK_UNICAEN_USER_ROLE_LINKER_USER FOREIGN KEY (USER_ID) REFERENCES UNICAEN_UTILISATEUR_USER (ID) DEFERRABLE INITIALLY IMMEDIATE;
ALTER TABLE UNICAEN_UTILISATEUR_USER_ROLE_LINKER ADD CONSTRAINT FK_UNICAEN_USER_ROLE_LINKER_ROLE FOREIGN KEY (ROLE_ID) REFERENCES UNICAEN_UTILISATEUR_ROLE (ID) DEFERRABLE INITIALLY IMMEDIATE;
CREATE INDEX IX_UNICAEN_USER_ROLE_LINKER_USER ON UNICAEN_UTILISATEUR_USER_ROLE_LINKER (USER_ID);
CREATE INDEX IX_UNICAEN_USER_ROLE_LINKER_ROLE ON UNICAEN_UTILISATEUR_USER_ROLE_LINKER (ROLE_ID);


-- -----------------------------------------------------
-- TABLE UNICAEN_PRIVILEGE_PRIVILEGE_CATEGORIE
-- -----------------------------------------------------
RENAME <SEQ_NAME> TO UNICAEN_PRIVILEGE_PRIVILEGE_CATEGORIE_ID_SEQ;
RENAME UNICAEN_PRIVILEGE_CATEGORIE TO UNICAEN_PRIVILEGE_PRIVILEGE_CATEGORIE;


-- -----------------------------------------------------
-- TABLE UNICAEN_PRIVILEGE_PRIVILEGE
-- -----------------------------------------------------
RENAME <SEQ_NAME> TO UNICAEN_PRIVILEGE_PRIVILEGE_ID_SEQ;


-- -----------------------------------------------------
-- TABLE UNICAEN_PRIVILEGE_PERIMETRE_CATEGORIE
-- -----------------------------------------------------
CREATE SEQUENCE UNICAEN_PRIVILEGE_PERIMETRE_CATEGORIE_ID_SEQ NOCYCLE START WITH 1 INCREMENT BY 1 MINVALUE 0;

CREATE TABLE UNICAEN_PRIVILEGE_PERIMETRE_CATEGORIE (
  ID          NUMBER(*,0)         NOT NULL,
  CODE        VARCHAR2(150 CHAR)  NOT NULL,
  LIBELLE     VARCHAR2(255 CHAR)  NOT NULL,
  DESCRIPTION VARCHAR2(1024 CHAR) NULL,
  ORDRE       INT                 DEFAULT 0,
  CONSTRAINT PK_UNICAEN_PERIMETRE_CATEGORIE PRIMARY KEY (ID),
  CONSTRAINT UN_UNICAEN_PERIMETRE_CATEGORIE_CODE UNIQUE (CODE)
);


-- -----------------------------------------------------
-- TABLE UNICAEN_PRIVILEGE_PERIMETRE
-- -----------------------------------------------------
CREATE SEQUENCE UNICAEN_PRIVILEGE_PERIMETRE_ID_SEQ NOCYCLE START WITH 1 INCREMENT BY 1 MINVALUE 0;

CREATE TABLE UNICAEN_PRIVILEGE_PERIMETRE (
  ID            NUMBER(*,0)         NOT NULL,
  CATEGORIE_ID  NUMBER(*,0)         NOT NULL,
  CODE          VARCHAR2(150 CHAR)  NOT NULL,
  LIBELLE       VARCHAR2(255 CHAR)  NOT NULL,
  DESCRIPTION   VARCHAR2(1024 CHAR) NULL,
  ORDRE         INT                 DEFAULT 0,
  CONSTRAINT PK_UNICAEN_PERIMETRE PRIMARY KEY (ID),
  CONSTRAINT UN_UNICAEN_PERIMETRE_CODE UNIQUE (CATEGORIE_ID, CODE),
  CONSTRAINT FK_UNICAEN_PERIMETRE_CATEGORIE FOREIGN KEY (CATEGORIE_ID) REFERENCES UNICAEN_PRIVILEGE_PERIMETRE_CATEGORIE (ID) DEFERRABLE INITIALLY IMMEDIATE
);

CREATE INDEX IX_UNICAEN_PERIMETRE_CATEGORIE ON UNICAEN_PRIVILEGE_PERIMETRE (CATEGORIE_ID);


-- -----------------------------------------------------
-- TABLE UNICAEN_PRIVILEGE_PERIMETRE_USER_ROLE_LINKER
-- -----------------------------------------------------
CREATE SEQUENCE UNICAEN_PRIVILEGE_PERIMETRE_USER_ROLE_LINKER_ID_SEQ NOCYCLE START WITH 1 INCREMENT BY 1 MINVALUE 0;

CREATE TABLE UNICAEN_PRIVILEGE_PERIMETRE_USER_ROLE_LINKER (
  ID            NUMBER(*,0) NOT NULL,
  PERIMETRE_ID  NUMBER(*,0) NOT NULL,
  USER_ROLE_ID  NUMBER(*,0) NOT NULL,
  CONSTRAINT PK_UNICAEN_PERIMETRE_USER_ROLE_LINKER PRIMARY KEY (ID),
  CONSTRAINT UN_UNICAEN_PERIMETRE_USER_ROLE_LINKER UNIQUE (PERIMETRE_ID, USER_ROLE_ID),
  CONSTRAINT FK_UNICAEN_PERIMETRE_USER_ROLE_LINKER_PERIMETRE FOREIGN KEY (PERIMETRE_ID) REFERENCES UNICAEN_PRIVILEGE_PERIMETRE (ID) DEFERRABLE INITIALLY IMMEDIATE,
  CONSTRAINT FK_UNICAEN_PERIMETRE_USER_ROLE_LINKER_USER_ROLE FOREIGN KEY (USER_ROLE_ID) REFERENCES UNICAEN_UTILISATEUR_USER_ROLE_LINKER (ID) DEFERRABLE INITIALLY IMMEDIATE
);

CREATE INDEX IX_UNICAEN_PERIMETRE_USER_ROLE_LINKER_PERIMETRE ON UNICAEN_PRIVILEGE_PERIMETRE_USER_ROLE_LINKER (PERIMETRE_ID);
CREATE INDEX IX_UNICAEN_PERIMETRE_USER_ROLE_LINKER_USER_ROLE ON UNICAEN_PRIVILEGE_PERIMETRE_USER_ROLE_LINKER (USER_ROLE_ID);


-- -----------------------------------------------------
-- TABLE UNICAEN_PRIVILEGE_PERIMETRE_CATEGORIE_ROLE_LINKER
-- -----------------------------------------------------
CREATE TABLE UNICAEN_PRIVILEGE_PERIMETRE_CATEGORIE_ROLE_LINKER (
  PERIMETRE_CATEGORIE_ID  NUMBER(*, 0) NOT NULL,
  ROLE_ID                 NUMBER(*, 0) NOT NULL,
  CONSTRAINT PK_UNICAEN_PERIMETRE_CATEGORIE_ROLE_LINKER PRIMARY KEY (PERIMETRE_CATEGORIE_ID, ROLE_ID),
  CONSTRAINT FK_UNICAEN_PERIMETRE_CATEGORIE_ROLE_LINKER_PERIMETRE_CATEG FOREIGN KEY (PERIMETRE_CATEGORIE_ID) REFERENCES UNICAEN_PRIVILEGE_PERIMETRE_CATEGORIE (ID) DEFERRABLE INITIALLY IMMEDIATE,
  CONSTRAINT FK_UNICAEN_PERIMETRE_CATEGORIE_ROLE_LINKER_ROLE FOREIGN KEY (ROLE_ID) REFERENCES UNICAEN_UTILISATEUR_ROLE (ID) DEFERRABLE INITIALLY IMMEDIATE
);

CREATE INDEX IX_UNICAEN_PERIMETRE_CATEGORIE_ROLE_LINKER_PERIMETRE_CATEG ON UNICAEN_PRIVILEGE_PERIMETRE_CATEGORIE_ROLE_LINKER (PERIMETRE_CATEGORIE_ID);
CREATE INDEX IX_UNICAEN_PERIMETRE_CATEGORIE_ROLE_LINKER_ROLE ON UNICAEN_PRIVILEGE_PERIMETRE_CATEGORIE_ROLE_LINKER (ROLE_ID);


-- DATA

INSERT INTO UTILISATEUR_PRIVILEGE_CATEGORIE (ID, CODE, LIBELLE, NAMESPACE, ORDRE)
WITH tmp AS (
  SELECT  1, 'perimetre'  c, 'Gestion des périmètres' l, 'UnicaenPrivilege\Provider\Privilege'  n, 4  o FROM dual
)
SELECT
  UTILISATEUR_PRIVILEGE_CATEGORIE_ID_SEQ.nextval,
  tmp.c,
  tmp.l,
  tmp.n,
  tmp.o
FROM tmp;

INSERT INTO UTILISATEUR_PRIVILEGE (ID, CATEGORIE_ID, CODE, LIBELLE, ORDRE)
WITH tmp AS (
  SELECT 1, 1 ca, 'consulter' c, 'Consulter les périmètres' l, 1  o FROM dual UNION
  SELECT 2, 1 ca, 'attribuer' c, 'Attribuer un périmètre'   l, 2  o FROM dual UNION
  SELECT 3, 1 ca, 'editer'    c, 'Éditer un périmètre'      l, 3  o FROM dual UNION
  SELECT 4, 1 ca, 'supprimer' c, 'Supprimer un périmètre'   l, 4  o FROM dual
)
SELECT
  UTILISATEUR_PRIVILEGE_ID_SEQ.nextval,
  UTILISATEUR_PRIVILEGE_CATEGORIE_ID_SEQ.currval,
  tmp.c,
  tmp.l,
  tmp.o
FROM tmp;
 No newline at end of file
+135 −0
Original line number Diff line number Diff line
-- -----------------------------------------------------
-- TABLE UNICAEN_UTILISATEUR_ROLE
-- -----------------------------------------------------
ALTER SEQUENCE <SEQ_NAME> RENAME TO UNICAEN_UTILISATEUR_ROLE_ID_SEQ;


-- -----------------------------------------------------
-- TABLE UNICAEN_UTILISATEUR_USER
-- -----------------------------------------------------
ALTER SEQUENCE <SEQ_NAME> RENAME TO UNICAEN_UTILISATEUR_USER_ID_SEQ;


-- -----------------------------------------------------
-- TABLE UNICAEN_UTILISATEUR_USER_ROLE_LINKER
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS UNICAEN_UTILISATEUR_USER_ROLE_LINKER (
  ID               SERIAL  PRIMARY KEY,
  USER_ID          INTEGER NOT NULL,
  ROLE_ID          INTEGER NOT NULL
);

WITH url(u, r) AS (
  SELECT * FROM UNICAEN_UTILISATEUR_ROLE_LINKER
)
INSERT INTO UNICAEN_UTILISATEUR_USER_ROLE_LINKER (USER_ID, ROLE_ID)
SELECT url.u, url.r FROM url;

DROP TABLE UNICAEN_UTILISATEUR_ROLE_LINKER;
ALTER TABLE UNICAEN_UTILISATEUR_USER_ROLE_LINKER ADD CONSTRAINT FK_UNICAEN_USER_ROLE_LINKER_USER FOREIGN KEY (USER_ID) REFERENCES UNICAEN_UTILISATEUR_USER (ID) DEFERRABLE INITIALLY IMMEDIATE;
ALTER TABLE UNICAEN_UTILISATEUR_USER_ROLE_LINKER ADD CONSTRAINT FK_UNICAEN_USER_ROLE_LINKER_ROLE FOREIGN KEY (ROLE_ID) REFERENCES UNICAEN_UTILISATEUR_ROLE (ID) DEFERRABLE INITIALLY IMMEDIATE;
CREATE UNIQUE INDEX UN_UNICAEN_USER_ROLE_LINKER ON UNICAEN_UTILISATEUR_USER_ROLE_LINKER(USER_ID, ROLE_ID);
CREATE INDEX IX_UNICAEN_USER_ROLE_LINKER_USER ON UNICAEN_UTILISATEUR_USER_ROLE_LINKER (USER_ID);
CREATE INDEX IX_UNICAEN_USER_ROLE_LINKER_ROLE ON UNICAEN_UTILISATEUR_USER_ROLE_LINKER (ROLE_ID);


-- -----------------------------------------------------
-- TABLE UNICAEN_PRIVILEGE_PRIVILEGE_CATEGORIE
-- -----------------------------------------------------
ALTER SEQUENCE <SEQ_NAME> RENAME TO UNICAEN_PRIVILEGE_PRIVILEGE_CATEGORIE_ID_SEQ;
ALTER TABLE UNICAEN_PRIVILEGE_CATEGORIE RENAME TO UNICAEN_PRIVILEGE_PRIVILEGE_CATEGORIE;


-- -----------------------------------------------------
-- TABLE UNICAEN_PRIVILEGE_PRIVILEGE
-- -----------------------------------------------------
ALTER SEQUENCE <SEQ_NAME> RENAME TO UNICAEN_PRIVILEGE_PRIVILEGE_ID_SEQ;


-- -----------------------------------------------------
-- TABLE UNICAEN_PRIVILEGE_PERIMETRE_CATEGORIE
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS UNICAEN_PRIVILEGE_PERIMETRE_CATEGORIE (
  ID          SERIAL            PRIMARY KEY,
  CODE        VARCHAR2(150)     NOT NULL,
  LIBELLE     VARCHAR2(255)     NOT NULL,
  DESCRIPTION VARCHAR2(1024)    NULL,
  ORDRE       INTEGER           DEFAULT 0
);

CREATE UNIQUE INDEX UN_UNICAEN_PERIMETRE_CATEGORIE_CODE ON UNICAEN_PRIVILEGE_PERIMETRE_CATEGORIE (CODE);


-- -----------------------------------------------------
-- TABLE UNICAEN_PRIVILEGE_PERIMETRE
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS UNICAEN_PRIVILEGE_PERIMETRE (
  ID            SERIAL          PRIMARY KEY,
  CATEGORIE_ID  INTEGER         NOT NULL,
  CODE          VARCHAR2(150)   NOT NULL,
  LIBELLE       VARCHAR2(255)   NOT NULL,
  DESCRIPTION   VARCHAR2(1024)  NULL,
  ORDRE         INTEGER         DEFAULT 0,
  CONSTRAINT FK_UNICAEN_PERIMETRE_CATEGORIE FOREIGN KEY (CATEGORIE_ID) REFERENCES UNICAEN_PRIVILEGE_PERIMETRE_CATEGORIE (ID) DEFERRABLE INITIALLY IMMEDIATE
);

CREATE UNIQUE INDEX UN_UNICAEN_PERIMETRE_CODE ON UNICAEN_PRIVILEGE_PERIMETRE(CATEGORIE_ID, CODE);
CREATE INDEX IX_UNICAEN_PERIMETRE_CATEGORIE ON UNICAEN_PRIVILEGE_PERIMETRE(CATEGORIE_ID);


-- -----------------------------------------------------
-- TABLE UNICAEN_PRIVILEGE_PERIMETRE_USER_ROLE_LINKER
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS UNICAEN_PRIVILEGE_PERIMETRE_USER_ROLE_LINKER (
  ID              SERIAL  PRIMARY KEY,
  PERIMETRE_ID    INTEGER NOT NULL,
  USER_ROLE_ID    INTEGER NOT NULL,
  CONSTRAINT FK_UNICAEN_PERIMETRE_USER_ROLE_LINKER_PERIMETRE FOREIGN KEY (PERIMETRE_ID) REFERENCES UNICAEN_PRIVILEGE_PERIMETRE (ID) DEFERRABLE INITIALLY IMMEDIATE,
  CONSTRAINT FK_UNICAEN_PERIMETRE_USER_ROLE_LINKER_USER_ROLE FOREIGN KEY (USER_ROLE_ID) REFERENCES UNICAEN_UTILISATEUR_USER_ROLE_LINKER (ID) DEFERRABLE INITIALLY IMMEDIATE
);

CREATE UNIQUE INDEX UN_UNICAEN_PERIMETRE_USER_ROLE_LINKER ON UNICAEN_PRIVILEGE_PERIMETRE_USER_ROLE_LINKER(PERIMETRE_ID, USER_ROLE_ID);
CREATE INDEX IX_UNICAEN_PERIMETRE_USER_ROLE_LINKER_PERIMETRE ON UNICAEN_PRIVILEGE_PERIMETRE_USER_ROLE_LINKER (PERIMETRE_ID);
CREATE INDEX IX_UNICAEN_PERIMETRE_USER_ROLE_LINKER_USER_ROLE ON UNICAEN_PRIVILEGE_PERIMETRE_USER_ROLE_LINKER (USER_ROLE_ID);


-- -----------------------------------------------------
-- TABLE UNICAEN_PRIVILEGE_PERIMETRE_CATEGORIE_ROLE_LINKER
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS UNICAEN_PRIVILEGE_PERIMETRE_CATEGORIE_ROLE_LINKER (
  PERIMETRE_CATEGORIE_ID  INTEGER NOT NULL,
  ROLE_ID                 INTEGER NOT NULL,
  CONSTRAINT PK_UNICAEN_PERIMETRE_CATEGORIE_ROLE_LINKER PRIMARY KEY (PERIMETRE_CATEGORIE_ID, ROLE_ID),
  CONSTRAINT FK_UNICAEN_PERIMETRE_CATEGORIE_ROLE_LINKER_PERIMETRE_CATEG FOREIGN KEY (PERIMETRE_CATEGORIE_ID) REFERENCES UNICAEN_PRIVILEGE_PERIMETRE_CATEGORIE (ID) DEFERRABLE INITIALLY IMMEDIATE,
  CONSTRAINT FK_UNICAEN_PERIMETRE_CATEGORIE_ROLE_LINKER_ROLE FOREIGN KEY (ROLE_ID) REFERENCES UNICAEN_UTILISATEUR_ROLE (ID) DEFERRABLE INITIALLY IMMEDIATE
);

CREATE INDEX IX_UNICAEN_PERIMETRE_CATEGORIE_ROLE_LINKER_PERIMETRE_CATEG ON UNICAEN_PRIVILEGE_PERIMETRE_CATEGORIE_ROLE_LINKER (PERIMETRE_CATEGORIE_ID);
CREATE INDEX IX_UNICAEN_PERIMETRE_CATEGORIE_ROLE_LINKER_ROLE ON UNICAEN_PRIVILEGE_PERIMETRE_CATEGORIE_ROLE_LINKER (ROLE_ID);


-- DATA

INSERT INTO UNICAEN_PRIVILEGE_PRIVILEGE_CATEGORIE (CODE, LIBELLE, NAMESPACE, ORDRE)
VALUES
  ('perimetre',   'Gestion des périmètres',   'UnicaenPrivilege\Provider\Privilege',    4)
ON CONFLICT (CODE) DO
  UPDATE SET
    LIBELLE=excluded.LIBELLE,
    NAMESPACE=excluded.NAMESPACE,
    ORDRE=excluded.ORDRE;

WITH d(code, lib, ordre) AS (
  SELECT 'consulter', 'Consulter les périmètres', 1 UNION
  SELECT 'attribuer', 'Attribuer un périmètre',   2 UNION
  SELECT 'editer',    'Éditer un périmètre',      3 UNION
  SELECT 'supprimer', 'Supprimer un périmètre',   4
)
INSERT INTO UNICAEN_PRIVILEGE_PRIVILEGE(CATEGORIE_ID, CODE, LIBELLE, ORDRE)
  SELECT cp.id, d.code, d.lib, d.ordre
  FROM d
    JOIN UNICAEN_PRIVILEGE_PRIVILEGE_CATEGORIE cp ON cp.CODE = 'perimetre'
  ON CONFLICT (CATEGORIE_ID, CODE) DO
    UPDATE SET
      LIBELLE=excluded.LIBELLE,
      ORDRE=excluded.ORDRE;
 No newline at end of file
+101 −101

File changed.

Preview size limit exceeded, changes collapsed.

+149 −113

File changed.

Preview size limit exceeded, changes collapsed.