lokale Datenbank in PostgreSQL konvertieren

Ich hatte eine Mailanfrage an Torben gerichtet - und jetzt nochmal hier, weil es vielleicht auch andere interessiert… :slight_smile:


Lieber Torben,

eine Frage: Gibt es eine praktikable Möglichkeit, die vorhandene lokale
mAirlist-Datenbank in eine PostgreSQL-Datenbank zu konvertieren? Wir
haben aktuell umgestellt, um künftig zwei Systeme (Webplayout und
Vorproduktion für UKW) vom Server aus zu bestücken. Alle Datensätze “von
Hand” neu anzulegen erscheint mir etwas aufwändig. Kennst Du eine
Lösung?

[…]

Torbens Antwort:


Hallo Andy,
[…]

Also hier ein paar Tipps, um euch in die richtige Richtung zu lenken:

  • Datenbank mit sqlite3.exe öffnen (sqlite3.exe database.db)

  • Dump erzeugen, dazu in der sqlite-Eingabeaufforderung ausführen:

.output dump.sql
.dump

  • Mit “.exit” beenden, Dump steht jetzt in der Textdatei “dump.sql”

  • Diese im Editor öffnen

  • Alle CREATE-Anweisungen löschen, so dass nur die INSERT-Zeilen dableiben

  • PostgreSQL-Datenbank anlegen, in mAirListConfig das Schema einspielen

  • Datenbank in pgAdmin öffnen und alle Zeilen aus “stations” und
    “config” entfernen:

DELETE FROM stations;
DELETE FROM config;

  • Jetzt die dump.sql öffnen und als Anfrage ausführen

EIGENTLICH wäre es jetzt fertig, zwei Dinge sind aber zu beachten:

  1. Die Spaltenreihenfolge kann unterschiedlich sein! (Insbesondere dann,
    wenn die mAirListDB zwischendurch ein Schema-Upgrade mitgemacht hat.)
    Ihr solltet euch also zuallererst davon überzeugen, dass die Spalten in
    exakt derselben Reihenfolge ist. Bei sqlite3 kann man sich das Schema
    mit “.dump” ausgeben lassen, bei pgAdmin einfach durchklicken (falls ihr
    psql als Kommandozeilentool nutzt: \d eingeben).

Falls die Reihenfolge bei einer Tabelle nicht stimmen sollte, muss man
die INSERT-Befehle im Dump so anpassen, dass die (alte) Reihenfolge der
Spalten mit angegeben ist. Aus

INSERT INTO config VALUES (…)

wird so z.B.

INSERT INTO config (name, value) VALUES (…)

Leider ist sqlite3.exe von Haus aus nicht in der Lage, die Spaltennamen
selbst in die INSERTs einzufügen.

  1. Für alle Tabellen, die eine autoinkrement (SERIAL) Spalte haben, also
    die die ID automatisch hochzählen, legt PostgreSQL eine sog. “Sequenz”
    an. Da wird die nächste ID drin gespeichert. Die muss nach dem Import
    auf jeweils den derzeit höchsten Wert gesetzt werden. Ist also die
    höchste ID in der items-Tabelle derzeit 8795, dann muss der aktuelle
    Wert der Sequenz items_idx_seq auf 8796 gesetzt werden.

Hier steht, wie das geht:
http://www.postgresql.org/docs/8.2/static/functions-sequence.html

Folgende Sequenzen müsste es betreffen:

tw@kuerbis:~$ psql mairlist4
psql (9.1.12)
Type “help” for help.

mairlist4=# \ds
List of relations
Schema | Name | Type | Owner
--------±------------------±---------±---------
public | artists_idx_seq | sequence | mairlist
public | folders_idx_seq | sequence | mairlist
public | items_idx_seq | sequence | mairlist
public | stations_idx_seq | sequence | mairlist
public | storages_idx_seq | sequence | mairlist
public | templates_idx_seq | sequence | mairlist
(6 rows)

Ich hoffe damit kommt ihr erstmal klar.

Danke für’s Dokumentieren :slight_smile: Hat es funktioniert?

So weit so gut. Ich habe die Prozedur so umgesetzt, wie beschrieben.
Leider waren die Bemühungen bislang erfolglos…

Wenn ich das bearbeitete Script in pgAdmin ausführe, erscheint eine Reihe von Warnungen und Fehlermeldungen. Daten werden nicht eingespielt. Die Spalten werden mir in pgAdmin als leer angezeigt. Nach dem Ausführen der Abfrage erkennt dann aber auch mAirlist die Datenbank nicht mehr und gibt die Fehlermeldung “Fehler beim Verbinden mit der Datenbank: Schema-Version kann nicht ermittelt werden” aus.

Nachdem ich die lokale db in mairlist 4.4 geupgradet hatte in eine entsprechende .mldb stimmte die Spaltenreihenfolge exakt mit der in PostgreSQL überein. In der Variante ohne Upgrade aus der datenbank.db war nur die Reihenfolge in der Tabelle “playlist.log” abweichend. Die Korrektur im SQL-Script war aber auch erfolglos.

Vielleicht hab ich ja irgendwo was übersehen oder einen Denkfehler drin. Meine SQL-Kenntnisse sind auch sehr bescheiden.

Hier mal die Fehlermeldungen, die beim Ausführen der Abfrage auftauchen:

WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12434: INSERT INTO “storages” VALUES(4,‘I:\Musik’,’’,‘I:\Musik’,NUL…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12434: INSERT INTO “storages” VALUES(4,‘I:\Musik’,’’,‘I:\Musik’,NUL…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12435: INSERT INTO “storages” VALUES(6,‘I:_sounds’,’’,‘I:_sounds’…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12435: INSERT INTO “storages” VALUES(6,‘I:_sounds’,’’,‘I:_sounds’…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12436: INSERT INTO “storages” VALUES(7,‘I:\Beiträge, Interviews, O-…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12436: …, Interviews, O-Töne etc\IN_SENDUNG_00_230511’,’’,‘I:\Beiträ…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12437: INSERT INTO “storages” VALUES(8,‘I:\Beiträge, Interviews, O-…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12437: …, Interviews, O-Töne etc\IN_SENDUNG_01_070611’,’’,‘I:\Beiträ…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12438: INSERT INTO “storages” VALUES(9,‘I:\Beiträge, Interviews, O-…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12438: …, Interviews, O-Töne etc\IN_SENDUNG_02_260711’,’’,‘I:\Beiträ…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12439: INSERT INTO “storages” VALUES(10,‘I:\Beiträge, Interviews, O…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12439: …, Interviews, O-Töne etc\IN_SENDUNG_03_251011’,’’,‘I:\Beiträ…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12440: INSERT INTO “storages” VALUES(11,‘I:\Beiträge, Interviews, O…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12440: …, Interviews, O-Töne etc\IN_SENDUNG_04_081111’,’’,‘I:\Beiträ…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12441: INSERT INTO “storages” VALUES(12,‘I:\Beiträge, Interviews, O…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12441: …, Interviews, O-Töne etc\IN_SENDUNG_05_221111’,’’,‘I:\Beiträ…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12442: INSERT INTO “storages” VALUES(13,‘I:\Beiträge, Interviews, O…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12442: …, Interviews, O-Töne etc\IN_SENDUNG_06_061211’,’’,‘I:\Beiträ…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12443: INSERT INTO “storages” VALUES(14,‘I:\Beiträge, Interviews, O…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12443: …, Interviews, O-Töne etc\IN_SENDUNG_07_201211’,’’,‘I:\Beiträ…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12444: INSERT INTO “storages” VALUES(15,‘I:\Beiträge, Interviews, O…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12444: …, Interviews, O-Töne etc\IN_SENDUNG_08_170112’,’’,‘I:\Beiträ…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12445: INSERT INTO “storages” VALUES(16,‘I:\Beiträge, Interviews, O…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12445: …, Interviews, O-Töne etc\IN_SENDUNG_09_310112’,’’,‘I:\Beiträ…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12446: INSERT INTO “storages” VALUES(17,‘I:\Beiträge, Interviews, O…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12446: …, Interviews, O-Töne etc\IN_SENDUNG_10_240412’,’’,‘I:\Beiträ…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12447: INSERT INTO “storages” VALUES(18,‘I:\Beiträge, Interviews, O…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12447: …, Interviews, O-Töne etc\IN_SENDUNG_11_080512’,’’,‘I:\Beiträ…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12448: INSERT INTO “storages” VALUES(19,‘I:\Beiträge, Interviews, O…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12448: …, Interviews, O-Töne etc\IN_SENDUNG_12_220512’,’’,‘I:\Beiträ…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12449: INSERT INTO “storages” VALUES(20,‘I:\Beiträge, Interviews, O…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12449: …, Interviews, O-Töne etc\IN_SENDUNG_13_050612’,’’,‘I:\Beiträ…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12450: INSERT INTO “storages” VALUES(21,‘I:\Beiträge, Interviews, O…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12450: …, Interviews, O-Töne etc\IN_SENDUNG_14_190612’,’’,‘I:\Beiträ…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12451: INSERT INTO “storages” VALUES(22,‘I:\Dropbox\AKTUELL’,’’,‘I:…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12451: …INTO “storages” VALUES(22,‘I:\Dropbox\AKTUELL’,’’,‘I:\Dropbo…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12452: INSERT INTO “storages” VALUES(23,‘I:\Beiträge, Interviews, O…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12452: …, Interviews, O-Töne etc\IN_SENDUNG_15_030712’,’’,‘I:\Beiträ…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12453: INSERT INTO “storages” VALUES(24,‘I:\Beiträge, Interviews, O…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12453: …, Interviews, O-Töne etc\IN_SENDUNG_16_100712’,’’,‘I:\Beiträ…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12454: INSERT INTO “storages” VALUES(25,‘I:\Beiträge, Interviews, O…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12454: …, Interviews, O-Töne etc\IN_SENDUNG_17_170712’,’’,‘I:\Beiträ…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12455: INSERT INTO “storages” VALUES(26,‘I:\Beiträge, Interviews, O…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12455: …, Interviews, O-Töne etc\IN_SENDUNG_18_240712’,’’,‘I:\Beiträ…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12456: INSERT INTO “storages” VALUES(27,‘I:\Musik\Lianne La Havas’,…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12456: …storages" VALUES(27,‘I:\Musik\Lianne La Havas’,’’,‘I:\Musik…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12457: INSERT INTO “storages” VALUES(28,‘I:\Beiträge, Interviews, O…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12457: …, Interviews, O-Töne etc\IN_SENDUNG_19_231012’,’’,‘I:\Beiträ…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von ’ in Zeichenkettenkonstante
LINE 12458: INSERT INTO “storages” VALUES(29,‘J:’,’’,‘J:’,NULL);
^
HINT: Verwenden Sie ‘’, um Quotes in Zeichenketten zu schreiben, oder verwenden Sie die Syntax für Escape-Zeichenketten (E’…’).

FEHLER: Syntaxfehler bei »J«
LINE 12458: INSERT INTO “storages” VALUES(29,‘J:’,’’,‘J:’,NULL);
^

********** Fehler **********

FEHLER: Syntaxfehler bei »J«
SQL Status:42601
Zeichen:1116898

Ah, er stört sich vermutlich an den Backslashes. Die müssen ja nach PostgreSQL-Version ein wenig anders angegeben werden bzw. mit einer bestimmten Option.

Um welche PostgreSQL-Version handelt es sich?

Das ist die PostgreSQL 8.4
Noch eine andere Frage: schreibt mAirlist die Daten zu den Songs auch irgendwie in die Musikdateien? Ich habe gerade mal den Ordner unseres Musikarchives mit einer leeren neu angelegten SQL-Datenbank synchronisiert und bei manchen Songs waren die Song-Infos da… Auch Ramps etc…

Bei PostgreSQL 8.x versuch mal ganz oben in den Dump noch folgende Zeile einzufügen:

SET standard_conforming_strings=on;

Das sollte die Fehler mit den Backslashes beheben.

In die Datei-Tags schreibt mAirList niemals von alleine etwas, nur auf Benutzeranforderungen (Exportieren -> In Datei-Tag).

Leider hat auch das nicht geklappt… Die Tabellen bleiben leer, und nach Ausführung des Scripts kann die Schema-Version von mAirlist nicht mehr ermittelt werden.

Die Fehler:
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12435: INSERT INTO “storages” VALUES(4,‘I:\Musik’,’’,‘I:\Musik’,NUL…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12435: INSERT INTO “storages” VALUES(4,‘I:\Musik’,’’,‘I:\Musik’,NUL…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12436: INSERT INTO “storages” VALUES(6,‘I:_sounds’,’’,‘I:_sounds’…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12436: INSERT INTO “storages” VALUES(6,‘I:_sounds’,’’,‘I:_sounds’…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12437: INSERT INTO “storages” VALUES(7,‘I:\Beiträge, Interviews, O-…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12437: …, Interviews, O-Töne etc\IN_SENDUNG_00_230511’,’’,‘I:\Beiträ…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12438: INSERT INTO “storages” VALUES(8,‘I:\Beiträge, Interviews, O-…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12438: …, Interviews, O-Töne etc\IN_SENDUNG_01_070611’,’’,‘I:\Beiträ…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12439: INSERT INTO “storages” VALUES(9,‘I:\Beiträge, Interviews, O-…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12439: …, Interviews, O-Töne etc\IN_SENDUNG_02_260711’,’’,‘I:\Beiträ…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12440: INSERT INTO “storages” VALUES(10,‘I:\Beiträge, Interviews, O…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12440: …, Interviews, O-Töne etc\IN_SENDUNG_03_251011’,’’,‘I:\Beiträ…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12441: INSERT INTO “storages” VALUES(11,‘I:\Beiträge, Interviews, O…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12441: …, Interviews, O-Töne etc\IN_SENDUNG_04_081111’,’’,‘I:\Beiträ…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12442: INSERT INTO “storages” VALUES(12,‘I:\Beiträge, Interviews, O…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12442: …, Interviews, O-Töne etc\IN_SENDUNG_05_221111’,’’,‘I:\Beiträ…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12443: INSERT INTO “storages” VALUES(13,‘I:\Beiträge, Interviews, O…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12443: …, Interviews, O-Töne etc\IN_SENDUNG_06_061211’,’’,‘I:\Beiträ…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12444: INSERT INTO “storages” VALUES(14,‘I:\Beiträge, Interviews, O…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12444: …, Interviews, O-Töne etc\IN_SENDUNG_07_201211’,’’,‘I:\Beiträ…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12445: INSERT INTO “storages” VALUES(15,‘I:\Beiträge, Interviews, O…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12445: …, Interviews, O-Töne etc\IN_SENDUNG_08_170112’,’’,‘I:\Beiträ…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12446: INSERT INTO “storages” VALUES(16,‘I:\Beiträge, Interviews, O…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12446: …, Interviews, O-Töne etc\IN_SENDUNG_09_310112’,’’,‘I:\Beiträ…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12447: INSERT INTO “storages” VALUES(17,‘I:\Beiträge, Interviews, O…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12447: …, Interviews, O-Töne etc\IN_SENDUNG_10_240412’,’’,‘I:\Beiträ…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12448: INSERT INTO “storages” VALUES(18,‘I:\Beiträge, Interviews, O…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12448: …, Interviews, O-Töne etc\IN_SENDUNG_11_080512’,’’,‘I:\Beiträ…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12449: INSERT INTO “storages” VALUES(19,‘I:\Beiträge, Interviews, O…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12449: …, Interviews, O-Töne etc\IN_SENDUNG_12_220512’,’’,‘I:\Beiträ…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12450: INSERT INTO “storages” VALUES(20,‘I:\Beiträge, Interviews, O…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12450: …, Interviews, O-Töne etc\IN_SENDUNG_13_050612’,’’,‘I:\Beiträ…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12451: INSERT INTO “storages” VALUES(21,‘I:\Beiträge, Interviews, O…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12451: …, Interviews, O-Töne etc\IN_SENDUNG_14_190612’,’’,‘I:\Beiträ…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12452: INSERT INTO “storages” VALUES(22,‘I:\Dropbox\AKTUELL’,’’,‘I:…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12452: …INTO “storages” VALUES(22,‘I:\Dropbox\AKTUELL’,’’,‘I:\Dropbo…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12453: INSERT INTO “storages” VALUES(23,‘I:\Beiträge, Interviews, O…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12453: …, Interviews, O-Töne etc\IN_SENDUNG_15_030712’,’’,‘I:\Beiträ…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12454: INSERT INTO “storages” VALUES(24,‘I:\Beiträge, Interviews, O…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12454: …, Interviews, O-Töne etc\IN_SENDUNG_16_100712’,’’,‘I:\Beiträ…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12455: INSERT INTO “storages” VALUES(25,‘I:\Beiträge, Interviews, O…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12455: …, Interviews, O-Töne etc\IN_SENDUNG_17_170712’,’’,‘I:\Beiträ…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12456: INSERT INTO “storages” VALUES(26,‘I:\Beiträge, Interviews, O…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12456: …, Interviews, O-Töne etc\IN_SENDUNG_18_240712’,’’,‘I:\Beiträ…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12457: INSERT INTO “storages” VALUES(27,‘I:\Musik\Lianne La Havas’,…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12457: …storages" VALUES(27,‘I:\Musik\Lianne La Havas’,’’,‘I:\Musik…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12458: INSERT INTO “storages” VALUES(28,‘I:\Beiträge, Interviews, O…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von Escape in Zeichenkettenkonstante
LINE 12458: …, Interviews, O-Töne etc\IN_SENDUNG_19_231012’,’’,‘I:\Beiträ…
^
HINT: Verwenden Sie die Syntax für Escape-Zeichenketten, z.B. E’\r\n’.
WARNUNG: nicht standardkonforme Verwendung von ’ in Zeichenkettenkonstante
LINE 12459: INSERT INTO “storages” VALUES(29,‘J:’,’’,‘J:’,NULL);
^
HINT: Verwenden Sie ‘’, um Quotes in Zeichenketten zu schreiben, oder verwenden Sie die Syntax für Escape-Zeichenketten (E’…’).
FEHLER: Syntaxfehler bei »J«
LINE 12459: INSERT INTO “storages” VALUES(29,‘J:’,’’,‘J:’,NULL);
^

********** Fehler **********

FEHLER: Syntaxfehler bei »J«
SQL Status:42601
Zeichen:1116934

Kannst du mir den Dump bitte mal mailen oder irgendwo hochladen?

soeben geschehen.

Danke. Ich schaue rein sobald ich Zeit habe. Vielleicht nachher noch.

Hab den Umzug in der Zwischenzeit von Hand gemacht. Das war auch ganz gut, um das Archiv mal von Altlasten zu befreien. Es läuft auch bis jetzt alles Stabil. Einziger Fehler: Beim Erzeugen des Playlist-Caches tritt ein Fehler auf:

“07.07.2014 11:10:11 Fehler Fehler beim Erzeugen der Playlist-Cache-Datei C:\ProgramData\mAirList\4.4\PlaylistCache\65EF1B92F300D2FAC5BCD209086465F2\1\2014-07-08-07.mlp: Fehler beim Speichern der Playlist: Im Textinhalt wurde ein ungültiges Zeichen gefunden”

das passiert bei jedem Cache-Ladevorgang laut Log. Kann man das irgendwie in den Griff bekommen?

Sorry, hatte zuviel um die Ohren. Meine Vermutung ist, dass es mit PostgreSQL 9 einfach funktioniert hätte - aber ich konnte es noch nicht ausprobieren.

Zum “neuen” Fehler, Ansatz zur Ursachenforschung: Lad die Playlist (irgendeine Stunde) mal zunächst via Datenbank-Playlist-Browser in die Ausspielung und speichere sie dann manuell im .mlp-Format. Kommt der Fehler dann auch? Wenn ja, nach und nach die Elemente rauslöschen, bis du herausgefunden hast, welches Element es ist.

Ich vermute, dass da irgendein Sonderzeichen nicht korrekt konvertiert wurde.

Ich habe den Test durchgeführt…
In zwei Stichproben bei Playlists, die nicht erzeugt werden konnten, war in den Attributen ein sicher nicht ganz gewolltes Zeichen versteckt, dass ich jetzt hier gar nicht reinkopieren kann … Es kommt nur das hier:“”. Entfernt man es aus dem jeweiligen Element und speichert es ab, ist es kein Problem, die jeweilige Playlist abzuspeichern.

Bei wievieln Elementen das auftritt, ist bislang noch nicht bekannt. Unser Sendetestbetrieb läuft erst seit 24 h.

Nachtrag: bis jetzt sind es schon 3 unterschiedliche Zeichen, die ich ausmachen konnte… Eines davon ist “unsichtbar”… Ein Tab oder sowas.
Kurioserweise kann das mit der Datenbankkonvertierung gar nicht so viel zu tun haben. Ich habe die Tracks ja alle neu eingespielt - gleich in die neue PostgreSQL-DB mittels mAirlist 4.4.

Wo kommen die Attribute denn her? Wurden die aus den ID3-Tags importiert? Dann wäre es super, wenn du mir mal eine der fraglichen Dateien zum Test zukommen lassen könntest.

Ja, aus den ID3-Tags. Leider hab ich jetzt die Daten in den fraglichen Dateien schon überschrieben. Ich bin aber sicher, dass es wieder auftreten wird. Sobald das passiert, kann ich Dir die Dateien gerne zukommen lassen.

Ok, mach das gerne.

Hinweis: Seit Build 2525 hat mAirList 5.0 diese Funktionalität von Haus aus mit an Bord.

mAirListDB-Anwendung -> Datenbank -> Exportieren -> Datenbank klonen

Es kann in alle Richtungen geklont werden, von Netzwerk nach lokal wie auch umgekehrt.