Klasse DBSchemaManager

java.lang.Object
de.svws_nrw.db.utils.schema.DBSchemaManager

public final class DBSchemaManager extends Object
Diese Klasse stellt Hilfs-Funktionen zur Verfügung, um auf ein SVWS-Datenbank-Schema zuzugreifen und dieses zu bearbeiten.
  • Felddetails

    • updater

      public final DBUpdater updater
      Der Updater, um Datenbank-Updates durchzuführen
    • backup

      public final DBBackupManager backup
      Der Backup-Manager, für den Import von und den Export nach SQLite
  • Methodendetails

    • create

      public static DBSchemaManager create(DBEntityManager conn, boolean returnOnError, Logger logger) throws DBException
      Versucht einen neuen DB-Schema-Manager zu erstellen.
      Parameter:
      conn - die Datenbank-Verbindung
      returnOnError - gibt an, ob Operatioen bei Einzelfehlern abgebrochen werden sollen
      logger - ein Logger, um die Abläufe in dem Schema-Manager zu loggen
      Gibt zurück:
      der DB-Schema-Manager bei Erfolg
      Löst aus:
      DBException - wenn ein Verbindungsfehler auftritt
    • getConnection

      public DBEntityManager getConnection()
      Gibt die Datenbank-Verbindung des Managers zurück.
      Gibt zurück:
      die Datenbank-Verbindung
    • getSchemaname

      public String getSchemaname()
      Gibt den Namen des Schemas zurück.
      Gibt zurück:
      der Name des Schemas;
    • getSchemaStatus

      public DBSchemaStatus getSchemaStatus()
      Gibt den Schema-Status (see DBSchemaStatus zurück.
      Gibt zurück:
      der Schema-Status von diesem Schema-Manager
    • getLogger

      public Logger getLogger()
      Gibt den vom Schema-Manager verwendeten Logger zurück.
      Gibt zurück:
      der Logger
    • getLastError

      public String getLastError()
      Gibt den zuletzt gesetzten Fehler einer Operation des Schema-Managers zurück.
      Gibt zurück:
      der zuletzt gesetzte Fehler
    • setDBRevision

      public static boolean setDBRevision(DBEntityManager conn, long revision)
      Setzt die Datenbank-Revision auf die angegebene Revision. Dabei wird die Transaktion aus der übergebenen Datenbankverbindung genutzt.
      Parameter:
      conn - die Datenbankverbindung
      revision - die zu setzende Revision, bei -1 wird die neueste Revision gesetzt
      Gibt zurück:
      true, falls die Revision erfolgreich gesetzt wurde, sonst false
    • createAllTrigger

      public static boolean createAllTrigger(DBEntityManager conn, Logger logger, long revision, boolean returnOnError)
      Führt die SQL-Skripte zum Erstellen aller Datenbank-Trigger der angegebenen Schema-Revision aus, welche nicht zu den Auto-Inkrementen bei Primärschlüsseln gehören. Die Datenbank-Transaktion muss außerhalb dieser Methoden gehandhabt werden.
      Parameter:
      conn - die Datenbank-Verbindung
      logger - der Logger
      revision - die Revision des Datenbank-Schemas
      returnOnError - gibt an, ob die Funktion bei einem Fehler sofort zurückkehrt oder nicht
      Gibt zurück:
      true, falls alle Trigger erfolgreich erstellt wurden
    • createSVWSSchema

      public void createSVWSSchema(DBEntityManager conn, long revision, boolean createUser, boolean createTrigger) throws DBException
      Erstellt ein SVWS-Datenbank-Schema der angegebenen Revision
      Parameter:
      conn - die Datenbank-Verbindung zum Erstellen des Schemas
      revision - die Revision für das SVWS-DB-Schema
      createUser - gibt an, ob Default-SVWS-Benutzer angelegt werden sollen
      createTrigger - gibt an, ob auch die Trigger für die Datenbank-Revision erstellt werden sollen (oder ob dies später seperat aufgerufen wird)
      Löst aus:
      DBException - falls das Erstellen des Schemas fehlschlägt
    • dropSVWSSchema

      public boolean dropSVWSSchema() throws DBException
      Verwirft das SVWS-Datenbank-Schema.
      Gibt zurück:
      true, wenn das Schema erfolgreich verworfen wurde, false wenn dabei Fehler aufgetreten sind.
      Löst aus:
      DBException - wenn ein Verbindungsfehler auftritt
    • createNewSchema

      public static boolean createNewSchema(DBConfig tgtConfig, String tgtRootUser, String tgtRootPW, long maxUpdateRevision, Logger logger)
      Diese Methode erstellt in der durch tgtConfig beschriebene SVWS-Server-Datenbank ein neues Schema.
      Parameter:
      tgtConfig - die Datenbank-Konfiguration für den Zugriff auf die SVWS-Server-Datenbank
      tgtRootUser - der Benutzername eines Benutzers, der mit den Rechten zum Verwalten der Datenbankschemata ausgestattet ist.
      tgtRootPW - das root-Kennwort für den Zugriff auf die Zieldatenbank
      maxUpdateRevision - die Revision, bis zu welcher die Zieldatenbank aktualisiert wird
      logger - ein Logger, welcher das Erstellen loggt.
      Gibt zurück:
      true, falls das Erstellen erfolgreich durchgeführt wurde.
    • recycleSchema

      public static boolean recycleSchema(DBConfig tgtConfig, long maxUpdateRevision, Logger logger) throws SVWSKonfigurationException
      Diese Methode verwendet das durch tgtConfig beschriebene Datenbank-Schema, um ein leeres SVWS-Schema der angegebenen Revision anzulegen. Dabei werden evtl. zuvor bestehende Tabellen entfernt.
      Parameter:
      tgtConfig - die Datenbank-Konfiguration für den Zugriff auf das Datenbank-Schema
      maxUpdateRevision - die Revision, bis zu welcher das SVWS-Schema aktualisiert wird
      logger - ein Logger, welcher das Erstellen loggt.
      Gibt zurück:
      true, falls das SVWS-Schema erfolgreich erzeugt wurde.
      Löst aus:
      SVWSKonfigurationException - falls ein Fehler beim Zugriff auf die Konfiguration auftritt