1.5.2 • Published 1 year ago

geco_managedb v1.5.2

Weekly downloads
-
License
ISC
Repository
gitlab
Last release
1 year ago

UpgradeDB

Abstract

questo progetto è un sistema automatico di allineamento del database Esegue l'esecuzione di tutti gli script DB presenti nella cartella src/db/migrate/sql e nelle sue sottocartelle che che non sono ancora stati eseguiti.
Gli script già eseguiti vengono memorizzati nella tablella definita nella function migrateDb (il nome attualmente previsto è script_db), quindi il codice eseguirà solo i file presenti nel path indicato e non ancora applicati nel DB a cui si collega.

Errori bloccanti non bloccanti

L'esecuzione di uno script può fallire, in questo caso occorre prevedere come si deve comportare l'algoritmo. Ossia se deve bloccare l'esecuzione o ignorare l'errore. A tale scopo è stato decido di utilizzare un commento (SQL) opportunamente codificato, se la prima riga del codice inzia con:

-- TCMN_CODE:

Allora il codice controlla la seconda parte:

  • se è presente la stringa NoBlockingError allora l'errore è NON bloccante
  • se è presente la stringa BlockingError allora l'errore è bloccante
  • se nella prima riga non è presente il commento -- TCMN_CODE:<code> allora lo script viene considerato non bloccante

Eempio di script:

-- TCMN_CODE:BlockingError - Questo è bloccante perché ......
create table pippo;

Nomenclatura dei file

Per un'esecuzione ordinata dei file questi devono avere un nome che ci consenta di ordinarli, a tale proposito è stato previsto che i file presenti nella suddetta directory sql siano nominati nel seguente modo:

yyyy_mm_dd-nn-<nome_file>.sql

Note

  • Se lo script è un insieme di istruzioni (ad esempio insert) verranno eseguite solo quelle possibili
  • se si vuole che un determinato script venga eseguito indipendentemente da quelli che lo precedono, va messo in file a parte.

Run manuale

node runUpgardeDB.js

Nota: -p va dopo run perché è un option e va prima dell'immagine

1.5.2

1 year ago

1.5.1

1 year ago

1.5.0

1 year ago

1.4.0

1 year ago

1.3.1

1 year ago

1.2.2

1 year ago

1.2.1

1 year ago

1.2.0

1 year ago

1.1.0

1 year ago

1.0.0

1 year ago