6.2. Přizpůsobte místní modely DB

Od QWAT 1.3.2 byl proces přizpůsobení a rozšíření formalizován.

Rozšíření je přizpůsobení základního datového modelu, které je součástí vyhrazeného úložiště. Lze jej kdykoli aktivovat pomocí vlastního inicializačního skriptu. Rozšíření může následovat životní cyklus modelu základních dat, což znamená, že oprava nebo zlepšení rozšíření jádra bude vyžadovat aktualizaci QWAT, ale může mít svůj vlastní životní cyklus. V současné době je jediným rozšířením exportní rozšíření SIRE. Všimněte si, že rozšiřuje seznamy hodnot a právě teď je upraveno jádro qwat.

** Místní přizpůsobení ** se bude řídit přesně stejnými pravidly vývoje jako rozšíření, kromě toho, že musí být uloženo v samostatném úložišti, kromě základních adresářů QWAT. lokální přizpůsobení musí být nejprve inicializováno ručně a poté použito v procesu migrace QWAT pomocí specifické volby upgrade_db.sh pro přidání dalších adresářů.

Rozšíření i přizpůsobení vyžadují následující:

  • inicializační skript, který do modelu přidává potřebné informace

  • sada aktualizačních skriptů používaných při upgradu základního datového modelu QWAT:

    • skript pre-all.py, který nakonec zruší všechna dodatečná zobrazení, spouštěcí funkci nebo jakékoli závislosti, které zamykají aktualizaci datového modelu

    • sada souborů SQL s předponou s číslem verze vloženým do verzí jádra datového modelu QWAT (např: 1.3.1.001_local_Pully_script)

    • skript post-all.py obnovující potřebné závislosti, jakmile bude použit základní model a rozšíření / přizpůsobení

Úplný příklad je uveden ve složce .build/customizations/sigip nebo SIRE extension.

6.2.1. Přizpůsobení datového modelu

Tato část se týká modifikace datového modelu pro přidání konkrétních objektů, nahoře na jádrovém datovém modelu QWAT. Přestože existuje plná svoboda při používání funkcí PostGIS a PostgreSQL, zde jsou konvence a osvědčené postupy pro projekt QWAT.

Povolené úpravy pro QWAT jsou:

  • Přidání vlastního pole

  • Přidání vlastní tabulky

Není dovolena žádná změna základního datového modelu (názvy polí, typy, omezení …), nebo byste měli požádat o centrální úpravu datového modelu QWAT.

6.2.2. Přidání pole

Pokud chcete přidat pole do jedné z tabulek základních datových modelů, postupujte takto

  • Uložte všechny modifikace jako samostatné skripty SQL. NIKDY neupravujte přímo strukturu vaší databáze.

  • Každé přidané pole nebo tabulka musí mít předponu usr_

  • mějte na paměti, že většina pohledů je generována inicializačním skriptem. Pole bude automaticky přidáno do pohledů, pokud použijete proces inicializace a zahrnutím souboru před a po za účelem přetažení a opětovného vytvoření pohledů.

  • Nejjednodušší přístup je ponechat jeden jedinečný skript SQL aplikovaný po všech souborech upgradu základní delty. V současné době (1.3.0) musí být soubor pojmenován jako vx.x.x a číslo verze musí být vyšší než nejnovější základní datový model.

Příklad: přidání informací o barvě barvy do hydrantů

  • 1: přidejte atribut s pgadminem (pro úpravu modelu můžete také přímo zadat SQL)

  • 2: do souboru usr_model.sql přidejte následující instrukce ekvivalentní SQL

1ALTER TABLE qwat_od.hydrant ADD COLUMN usr_color integer;
  • 3: přidejte následující instrukci SQL do souboru usr_model_drop.sql

1 ALTER TABLE qwat_od.hydrant DROP COLUMN usr_color ;

6.2.3. Přidání tabulky

Vlastní tabulky pasují na konkrétní schémata s předponou usr_ . Pokud chcete mít další vlastní tabulky, měli byste se nejprve ujistit, že takové vlastní schéma existuje.

Pokud chcete přidat tabulku, postupujte takto

  • Vytvořte vlastní schéma s předponou usr_

  • Přidejte tabulku do tohoto schématu (název tabulky je volitelný)

  • Měli byste zapsat odpovídající rozdílový kód proti základnímu datovému modelu (viz příklad níže)

  • Můžete zapsat odpovídající smazáníí rozdílového kódu proti základnímu datovému modelu (viz příklad níže)

Příklad: přidání informací o barvě do hydrantů

  • 1: přidejte schéma usr_cityservices a tabulku hydrant_paint s pgadminem (pro úpravu modelu můžete také přímo zadat SQL)

  • 2: do souboru usr_model.sql přidejte následující instrukce ekvivalentní SQL

1 CREATE SCHEMA usr_cityservices;
2 CREATE TABLE usr_cityservices.hydrant_paint (
3 id serial
4 , fk_hydrant integer
5 , color varchar
6 , paint_date timestamp
7);
8 ALTER TABLE usr_cityservices.hydrant_paint ADD CONSTRAINT hydrant_fk FOREIGN KEY (fk_hydrant) REFERENCES qwat_od.hydrant(id) MATCH FULL;
  • 3: přidejte následující instrukci SQL do souboru usr_model_drop.sql

1 ALTER TABLE usr_cityservices.hydrant_paint DROP CONSTRAINT hydrant_fk;
2 DROP TABLE usr_cityservices.hydrant_paint;
3 DROP SCHEMA usr_cityservices;

6.3. Vytvořte rozšíření

Rozšíření mají vyhrazená úložiště jako SIRE Extension. Chcete-li vytvořit rozšíření, musíte vytvořit nové úložiště z template a pak postupujte podle pokynů.