Commit 0795608e authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

Synchro : spécification dans la table SOURCE (colonnes 'synchro_*_enabled')...

Synchro : spécification dans la table SOURCE (colonnes 'synchro_*_enabled') des opérations autorisées ou non lors de la synchro (màj bdd requise).
Exemple : ne pas autoriser le 'delete' est utile lorsque les données sources sont obtenues de façon incrémentale au fil du temps, et non pas de façon exhaustive en une seule fois.
parent bff6eb4a
Loading
Loading
Loading
Loading
Loading
+1 −1
Changes for CHANGELOG.md: 1 added line, 1 removed line.
Original line number Diff line number Diff line
@@ -10,7 +10,7 @@ Changelog
- [FIX] Vue du différentiel d'une synchro : suppression du warning PHP 'Undefined array key'. 
- [FIX] Vue du différentiel d'une synchro : prise en compte du paramètre de config 'source_code_column'.
- [FIX] Correction du SQL générant V_DIFF_* pour le cas d'une synchro depuis une source non-importable
- Synchro : possibilité de spécifier dans la config les seules opérations autorisées par une synchro.
- Synchro : spécification dans la table SOURCE (colonnes 'synchro_*_enabled') des opérations autorisées ou non lors de la synchro (màj bdd requise).
  Exemple : ne pas autoriser le 'delete' est utile lorsque les données sources sont obtenues de façon incrémentale
  au fil du temps, et non pas de façon exhaustive en une seule fois.
- Suppression de 2 lignes intruses dans la config
+2 −1
Changes for composer.json: 2 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -18,7 +18,8 @@
        "monolog/monolog": "^2.8",
        "ramsey/uuid": "^3.0",
        "unicaen/app": "^6.0",
        "unicaen/livelog": "^2.0"
        "unicaen/livelog": "^2.0",
        "webmozart/assert": "^1.3"
    },
    "require-dev": {
        "phpunit/phpunit": "^8.0"
+0 −5
Changes for config/unicaen-db-import.global.php.dist: 0 added lines, 5 removed lines.
Original line number Diff line number Diff line
@@ -182,11 +182,6 @@ return [
                // Nom unique de la synchro.
                'name' => 'SYNCHRONISATION DES DONNÉES MES_PAYS_TEMPORAIRES VERS MES_PAYS',

                // Seules opérations autorisées par cette synchro.
                // Exemple : ne pas autoriser le 'delete' est utile lorsque les données sources sont obtenues de façon incrémentale (i.e. partielle)
                // au fil du temps, et non pas de façon exhaustive en une seule fois.
                'operations' => Operation::OPERATIONS,

                // Configuration de la source de données à synchroniser :
                'source' => [

+10 −1
Changes for data/oracle.sql: 10 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -4,8 +4,17 @@ create table SOURCE
	CODE VARCHAR2(64 char) not null constraint SOURCE_CODE_UN unique,
	LIBELLE VARCHAR2(128 char) not null,
	IMPORTABLE NUMBER(1) not null,
    SYNCHRO_DELETE_INTERDIT int(1) default 0 not null
    SYNCHRO_INSERT_ENABLED int(1) default 1 not null,
    SYNCHRO_UPDATE_ENABLED int(1) default 1 not null,
    SYNCHRO_UNDELETE_ENABLED int(1) default 1 not null,
    SYNCHRO_DELETE_ENABLED int(1) default 1 not null
);
comment on table source is 'Sources de données, importables ou non, ex: Apogée, Physalis.';
comment on column source.importable is 'Indique si cette source de données est importable ou non.';
comment on column source.synchro_insert_enabled is 'Indique si dans le cadre d''une synchro l''opération ''insert'' est autorisée.';
comment on column source.synchro_update_enabled is 'Indique si dans le cadre d''une synchro l''opération ''update'' est autorisée.';
comment on column source.synchro_undelete_enabled is 'Indique si dans le cadre d''une synchro l''opération ''undelete'' est autorisée.';
comment on column source.synchro_delete_enabled is 'Indique si dans le cadre d''une synchro l''opération ''delete'' est autorisée.';

INSERT INTO SOURCE (ID, CODE, LIBELLE, IMPORTABLE) VALUES (1, 'app', 'Application', 0);
--INSERT INTO SOURCE (ID, CODE, LIBELLE, IMPORTABLE) VALUES (2, 'octopus', 'Référentiel Octopus', 1);
+9 −2
Changes for data/postgresql.sql: 9 added lines, 2 removed lines.
Original line number Diff line number Diff line
@@ -7,10 +7,17 @@ create table source
    code varchar(64) not null constraint source_code_key unique,
    libelle varchar(128) not null,
    importable boolean not null,
    synchro_delete_interdit boolean default false not null
    synchro_insert_enabled boolean default true not null,
    synchro_update_enabled boolean default true not null,
    synchro_undelete_enabled boolean default true not null,
    synchro_delete_enabled boolean default true not null
);
comment on table source is 'Sources de données, importables ou non, ex: Apogée, Physalis.';
comment on column source.synchro_delete_interdit is 'Indique si dans le cadre d''une synchro l''opération ''delete'' est interdite. L''interdire est utile lorsque les données sources sont obtenues de façon incrémentale au fil du temps et non pas de façon exhaustive en une seule fois.';
comment on column source.importable is 'Indique si cette source de données est importable ou non.';
comment on column source.synchro_insert_enabled is 'Indique si dans le cadre d''une synchro l''opération ''insert'' est autorisée.';
comment on column source.synchro_update_enabled is 'Indique si dans le cadre d''une synchro l''opération ''update'' est autorisée.';
comment on column source.synchro_undelete_enabled is 'Indique si dans le cadre d''une synchro l''opération ''undelete'' est autorisée.';
comment on column source.synchro_delete_enabled is 'Indique si dans le cadre d''une synchro l''opération ''delete'' est autorisée.';

INSERT INTO SOURCE (ID, CODE, LIBELLE, IMPORTABLE) VALUES (1, 'app', 'Application', false);
--INSERT INTO SOURCE (ID, CODE, LIBELLE, IMPORTABLE) VALUES (2, 'octopus', 'Référentiel Octopus', true);
Loading