Datenbankserver für die Faktura

Dieser Artikel beschreibt, wie man von einer vorhandenen MS-Access-Datenbank auf eine MariaDB- oder MySQL-Datenbank umsteigt. Es werden alle Daten aus der Access-Datenbank auf einen Datenbank-Server kopiert.

Dieser Artikel geht davon aus, dass ein Datenbank-Server bereits installiert ist und funktioniert.

Es werden 2 Tools verwendet:

Daten aus Access exportieren

Zuerst exportieren wir alle Daten aus Access. Es wird eine Text-Datei mit SQL-Befehlen (eine sog. Dump-Datei) erzeugt, die später vom Datenbankserver zum importieren der Daten gelesen werden kann.

Wir verwenden zum Erzeugen der Dump-Datei das Programm “Bullzip Access to MySQL” (http://bullzip.com/products/a2m/info.php).

Hinweis: Das Bullzip-Programm bietet auch Optionen, um nicht nur die Daten, sondern auch die Datenbank-Struktur in die Dump-Datei zu exportieren. Diese Optionen verwenden wir nicht, weil damit alle Beziehungen (Foreign-Key-Constraints) verloren gehen würden, da das Programm diese nicht exportieren kann.

Bullzip fragt verschiedene Daten ab, hier die nötigen Information für die Konvertierung der Faktura Datenbank:

  1. Source Database:

    Der Pfad zur Datenbankdatei wird im Feld Filename angegeben. Die Datenbankdatei finden Sie im Profilverzeichnis im Unterverzeichnis dbs. Der Name der Datei lautet faktura.mdb

  2. Destination Database:

    Wählen Sie die Optiom Create dump file. Im Feld Filename geben Sie hier den Pfad und Namen der Dump-Datei an, die erzeugt werden soll (z.B. C:\Users\Name\Documents\dump.sql) Im Feld Destination Database geben Sie den Namen der MySQL-Datenbanl an, der später verwendet werden soll (z.B. faktura) Bei Storage Engine wählen Sie “InnoDB”.

  3. Select Tables:

    Klicken Sie auf Select All um alle Tabelle auszuwählen.

  4. Transfer Options:

    Aktivieren Sie nur die Haken bei Transfer records und Include column list in INSERT statements sowie bei Default value properties und Auto number properties.

Abschließend wird die SQL-Dump-Datei erzeugt mit Klick auf Run Now

Dump-Datei anpassen

Damit der Import der Dump-Datei später auch tatsächlich ohne Fehler abläuft, müssen wir die Dump-Datei bearbeiten.

Suchen Sie diese Zeilen (ziemlich am Anfang der Datei) und löschen Sie diese:

  CREATE DATABASE IF NOT EXISTS `faktura_hau`;
  USE `faktura_hau`;

(Wobei statt faktura_hau der Name der Datenbank erscheint, den Sie selber im Dialog eingegeben hatten). Diese Zeilen müssen gelöscht werden, weil Sie eine neue Datenbank erzeugen und auswählen. Dies erledigen wir aber in einem separaten Schritt.

Nachdem Sie die oben genannten Zeilen gelöscht haben, fügen Sie an die Stelle der gelöschten Zeilen diese neuen Zeilen ein:

  SET FOREIGN_KEY_CHECKS=0;
  
  DELETE FROM OPT_NUMBERS;
  DELETE FROM REF_APPLOG_CATEGORY_NAME;
  DELETE FROM REF_CONTACT_PHONE;
  DELETE FROM REF_CONTACT_RELATION_PROPERTY;
  DELETE FROM REF_CONTACT_RELATION_TYPE;
  DELETE FROM REF_DECEASE_ORDER_APPOINTMENT;
  DELETE FROM REF_DECEASE_ORDER_TYPE;
  DELETE FROM REF_DECEASE_ORDER_PROPERTY;
  DELETE FROM REF_ORDER_TEXT_POSITION;
  DELETE FROM REF_ORDER_TYPE;
  DELETE FROM REF_QUANTITY_UNIT;
  DELETE FROM TBL_CONTACT_CATEGORY;
  DELETE FROM TBL_PAYMENT_CONDITION;
  DELETE FROM TBL_PRODUCT_TAX;
  DELETE FROM TBL_STOCK;

(Die ‘SET…’ Zeile deaktiviert die Prüfung von Beziehungen während des Imports, die ‘DELETE…’ Zeilen entfernen vor dem Import Standard-Einträge in der Datenbank, die der Dump bereits enthält).

Ganz am Ende der Dump-Datei fügen Sie noch diese Zeile ein:

  SET FOREIGN_KEY_CHECKS=1;

Mit diesem Befehl wird die Prüfung von Beziehungen wieder aktiviert.

Zeichensatz der Dump-Datei anpassen

Eventuell muss noch die Kodierung (Zeichensatz) angepasst werden. Unter Linux kann dafür das Tool iconv verwendet werden:

  iconv -f UTF-8 -t latin1 dump-dateiname.sql > dump-dateiname.latin1.sql

oder (falls es zum Abbruch kommt, wegen Euro-Symbolen im Text):

  iconv -f UTF-8 -t ISO-8859-15 -c faktura.20110729.sql > faktura.20110729.latin1.sql

Hintergrund: latin1 (ISO-8859-1) enthält kein Euro-Symbol, in ISO-8859-15 (aka. latin0 oder latin9) wurde das aufgenommen.

Die -c Option verhindert die Ausgabe von nicht konvertierbaren Zeichen.

Unter Windows kann die Dump-Datei mit einem Editor-Programm wie Notepad++ geöffnet werden und dann mit dem gewünschten Zeichensatz gespeichert werden.

Datenbank auf dem Datenbankserver erzeugen

Um die Datenbank zu erzeugen und die Daten zu importieren, muss nun folgendermaßen vorgegangen werden:

  1. Datenbank auf dem Server erzeugen
  2. SQL-Script zum erstellen der Tabelle ausführen
  3. Dump-Script, das oben erstellt wurde, zum Importieren der Daten ausführen.

Diese Schritte können mit einem MariaDB- oder MySQL-Clienten der Wahl gemacht werden. Ich nutze dafür gerne den MySQL-Kommandozeilen-Client. Da dies aber nicht jedermanns Sache ist, folgt hier eine Beschreibung, wie das mit dem grafischen Programm “HeidiSQL” (http://www.heidisql.com/download.php) gemacht werden kann:

Starten Sie das Programm HeidiSQL

Durch Klicken auf “Öffnen” im Verbindungsmanager wird die Verbindung zur ausgewählten Datenbank hergestellt.

Wenn im Bereich “Verbindungsname” Ihr Datenbank-Server noch nicht auftaucht, dann können Sie ihn mit “Neu” hinzufügen.

Erzeugen der Datenbank

  1. Nachdem Sie mit dem Datenbankserver vebunden sind, erstellen Sie eine neue Datenbank durch Rechsklick auf den Server-Namen in der Baumansicht auf der linken Seite und Auswahl von “Neu erstellen… -> Datenbank”.
  2. Sobald die Datenbank erzeugt ist, klicken Sie auf den Datenbanknamen in der Baumansicht auf der linken Seite, um die Datenbank auszuwählen.
  3. Klicken Sie nun im Menü “Datei” auf “SQL-Datei laden”. Wählen Sie die Datei “Faktura.SetupMySQL.sql” aus. Sie finden diese Datei im Installationsverzeichnis im Ordner “profiles\default\dbs".

Damit ist die Datenbank erzeugt.

Importieren der Daten

Der Import der Daten erfolgt ebenfalls im SQL-Editor.

Klicken Sie nun im Menü “Datei” auf “SQL-Datei laden”. Wählen Sie die Dump-Datei, die Sie vorhin erzeugt haben.

Damit werden die Daten importiert.

Prüfen Sie nach dem Import, ob die Faktura sich mit der Datenbank verbinden lässt (siehe auch /docs/netzwerk.html#anwendung-verbinden). Schauen Sie sich die Daten an und prüfen Sie Umlaute, Euro-Zeichen etc.