Delta

Mit Hilfe des Deltamoduls können Änderungen in der Datenbank schnell, einfach und effizient ermittelt werden.

Um Änderungen in einer Zeile identifizieren zu können, wird bei einem INSERT-, UPDATE- oder DELETE-Statement mittels Trigger ein MD5 über alle Inhalte einer Zeile berechnet und das Ergebnis in die Tabelle co_delta geschrieben.

Das Schreiben der Änderungen erfolgt mittels Trigger innerhalb der Datenbank und ist dadurch schnell und effizient.

Wird ein neuer oder geänderter Datensatz gespeichert, so ändert sich das Datum in der Spalte sys_lastupdate.

Das Datum ändert sich nicht, wenn der MD5 identisch ist. Das ist das Standardverhalten von MySQL.

ID

Jede Tabelle besitzt eine eindeutige ID mit der diese identifiziert wird. Diese ID wird in der Delta Route definiert. Für weitere Tabellen muss hier geprüft werden welche IDs schon vergeben sind.

<configuration>
  <urls>
    <url name="item" id="1">
      <![CDATA[/api/commerce/item/search?q=item.iid%20IN%20%22${idlist}%22]]>
    </url>
  </urls>   
</configuration>

Erstellen eines neuen Triggers

Hierzu steht der Befehl dev:createdeltasql zur Verfügung.

Ein neuer Trigger wird in /deployment/database/trigger_.sql abgelegt und muss eingereicht werden.

Export der Tabellen

Das Script /development/script/export-table.php muss mit --skip-triggers laufen, damit die Trigger nicht doppelt in den Dateien definiert werden.