Das Thema Datenbank kommt immer wieder auf, bei uns im Team14.
Zentraler Bestandteil unseres Arbeitsablaufes ist neben Seafile auch noch GIT.
An GIT gefällt mir besonders gut, dass man Änderungen durch ein DIFF sehr schön präsentiert bekommt.
Normalerweise sind Datenbanken in einem Binärformat abgelegt, was mit GIT leider gar nichts bringt.
Der Weg bisher war mit mehreren CSV-Dateien und einigen Python-Skripte. Doch so ganz zufrieden bin ich damit noch nicht.
Ich bin nun schon fast am Ziel angekommen…
Es gibt eine bestehende Datei Namens parts.csv.
Dazu machen wir eine neue HSQLDB Namens parts.odb, also eine LibreOffice Base Datenbank. Dabei erzeugen wir per SQL Befehle (Tools→SQL) eine entsprechende Tabelle:
CREATE TEXT TABLE "Parts" ( "InternalName" VARCHAR(20) PRIMARY KEY, "PartType" VARCHAR(20), "Subtype" VARCHAR(20), "Manufacturer" VARCHAR(100), "Manufacturer-PartName" VARCHAR(100), "Description" VARCHAR(200), "Package" VARCHAR(100), "Distributor1" VARCHAR(100), "OrderNumber1" VARCHAR(100), "Distributor2" VARCHAR(100), "OrderNumber2" VARCHAR(100), "Container" VARCHAR(20), "BoxName" VARCHAR(20), "PiecesOnStock" INTEGER, "KiCad-Symbol-Lib" VARCHAR(100), "KiCad-Symbol-Part" VARCHAR(100), "KiCad-Footprint" VARCHAR(100), "Price" DECIMAL, "PriceForQty" INTEGER );
.
Dann wird die Tabelle wieder per SQL mit der CSV-Datei verknüpft:
SET TABLE "Parts" SOURCE "parts.csv;ignore_first=true;encoding=UTF-8;fs=\semi";
Dabei definiert fs=\semi den „field separator“ als Semikolon (Strichpunkt).
Nun muss die neue Datenbank noch in LibreOffice registriert werden:
Nun legen wir noch eine neue Datei parts-editor.ods an. In dieser Datei importieren wir nun die zuvor registrierte Datenbank/Tabelle mit Strg+Shift+F4. Hier kann man dann per Drag'n'Drop die Tabelle 'Parts' einfach in eine Zelle ziehen, und es erscheint die ganze Tabelle samt Tabellenkopf.
Das Problem ist nun, wie die Daten aus dem Spread-Sheet wieder zurück in die Datenbank kommen. Ist der Link zur Datenbank eine Einweg-Verbindung?