PostgreSQL in SQLite3 konvertieren

PostgreSQL in SQLite3 konvertieren

Wozu PostgreSQL in SQLite konvertieren?

Ich selbst bin Web-Entwickler und arbeite zu Hause gerne an einem einfachen und portablen System und dazu ist SQLite einfach fantastisch: Es ist ressourcen-schonend, klein und leicht zu verwenden.

Aber auf dem echten Server ist SQLite häufig ungeeignet. Um nun mit realistischen Daten am lokalen System zu arbeiten, konvertiere ich einfach einen PostgreSQL Dump des echten Servers und lese die Daten und die Struktur lokal in eine SQLite Datenbank ein. Et voilà: Ein 1:1 Spiegel des Servers auf meinem Localhost. Und das beste: es ist schnell, einfach und kostenlos.

 

pgMyAdmin Datenexport

    1. Erstellt mit pgMyAdmin oder auf der Konsole einen Dump der PostgreSQL Datenbank im SQL Format mit Struktur und Daten (oder auch nur Daten, falls bereits eine Struktur in einer fertigen SQLite DB vorliegt).
    2. SQLite kennt kein True und kein False: Ersetzt also alle true1 und alle false durch 0 durch.
    3. In PostgreSQL werden Primary Keys nachträglich durch eine Anweisung in eine Tabelle eingefügt. Bei SQLite geschieht dies, wie auch bei MySQL, während der Tabellenerzeugen. Ersetz also jetzt alle CREATE TABLES, wie hier gezeigt:

PostgreSQL CREATE TABLE Statement

CREATE TABLE xyz ( id integer NOT NULL, data1 integer NOT NULL, data2 integer NOT NULL, data3 timestamp with time zone NOT NULL );

SQLite CREATE TABLE mit PRIMARY KEY

CREATE TABLE xyz ( id integer NOT NULL PRIMARY KEY, data1 integer NOT NULL, data2 integer NOT NULL, data3 timestamp with time zone NOT NULL );

Die Daten sind jetzt bereit, um sie einzulesen.

 

Einschränkung: Komplexe Strukturen, wie etwa UNIQUE Felder und weitere Indices werden bei SQLite3 direkt mit dem CREATE TABLE Befehl integriert. Bei PostgreSQL gibt es dazu extra SQL Befehlszeilen im Dump. Diese müssen leider nach Erstellung der Sqlite-Datenbank manuell hinzugefügt werden. Bzw. mir ist bisher keine einfache Automatisierung dazu eingefallen.

 

Um eine ganz neue SQLite Datenbank zu erstellen, verwendet folgende Konsolenbefehle:

sqlite3 name_der_datenbank.db

Dann auf der SQLite Shell, die sich nun vor Euch befidnen sollte:

.read dump.sql

dump.sql ist dabei die Datei, die alle eben bearbeiteten Daten enthält. Vergesst nicht den Punkt vor "read". Damit kennzeichnet man einen SQLite Shell Befehl.

So, das war es schon. Viel Spaß!

 

Für die durchzuführenden Operationen lege ich Euch anbei das geniale Opensource Programm Notepad++ ans Herz: Ein Text-Editor mit Syntax Highlighting und genialen Plugins und Funktionen, dazu noch klein, schnell und portabel.

Laden ...
Fehler!