Minimale Postgres-Instanz zum Testen

8

Ich habe Code, der mit Postgres-Datenbanken über JDBC interagiert. Zu Testzwecken möchte ich jedoch schnell eine neue Datenbank erstellen und eine Verbindung zu ihr herstellen, ohne meine globale Postgres-Installation ändern, Benutzer verwalten zu müssen usw. Wie machen die Leute diese Art von Tests?

    
user1063042 07.12.2012, 22:22
quelle

3 Antworten

7

Ich würde die ausführbare Datei initdb finden und sie verwenden, um einen neuen temporären Zwischenspeicher der Datenbankinstanz zu erstellen, der vom aktuellen Benutzer beschreibbar ist. Da es sich um eine Testinstanz handelt, verwenden Sie so etwas wie initdb --auth=trust --username=postgres -D /path/to/temp/datadir , damit die neue Datenbank Verbindungen ohne Passwort akzeptiert.

Verwenden Sie pg_ctl , um den Server zu starten. Geben Sie einen Port an, um den Standardsatz in der generierten postgresql.conf zu überschreiben und Konflikte zu vermeiden.

Stellen Sie eine Verbindung mit dem neuen Datenbankcluster her und führen Sie alle erforderlichen Arbeiten aus. Sie sollten sich als Benutzer postgres zuerst verbinden und alle erforderlichen CREATE USER - und CREATE DATABASE -Befehle ausführen, bevor Sie die Kontrolle über Ihren Testcode übergeben.

Schließlich verwenden Sie pg_ctl , um es zu stoppen und schließlich das Datenverzeichnis zu löschen.

Alles was Sie brauchen ist initdb und pg_ctl für PATH und eine Hilfsklasse um den Server zu verwalten.

Siehe:

Craig Ringer 07.12.2012 23:40
quelle
4

Es gibt mehrere Bibliotheken, die das Erstellen von temporären Instanzen von Postgres zum Testen einfach machen:

Alle diese sind heruntergefahren und entfernen die temporäre Datenbank automatisch. So können Sie pg_tmp(1) verwenden, um eine minimale Postgres-Instanz von einem Java zu erstellen:

%Vor%     
eradman 07.07.2014 20:24
quelle
0

Sie können eine Instanz von Postgres in Ihrem Home-Verzeichnis installieren, die auf einem anderen Port und unter Ihrem Benutzer ausgeführt wird. Sehen Sie hier zum Beispiel:

Ссылка

Sie können Ihren Code auch auf Heroku testen, je nachdem, was er ist. Sie geben Ihnen eine kleine virtuelle Postgres-Datenbank kostenlos.

    
Diego Basch 07.12.2012 22:29
quelle

Tags und Links