Mein aktuelles Programmierprojekt hat mir den Zugriff auf einPostgreSQL-Datenbank in Python3 mit psycopg2-Bibliothek. Obwohl alles gut läuft, stelle ich fest, dass es subtile Unterschiede zwischen der Open-Source-Version von PostgreSQL und der EnterpriseDB-Version (auch bekannt als Postgres Plus Advanced Server oder PPAS) gibt. Daher muss ich feststellen können, ob eine Datenbankverbindung zu einer PPAS-Instanz oder einer regulären PostgreSQL-Instanz besteht.
Gibt es eine Möglichkeit, dies über die API psycopg2 oder durch Abfrage der Datenbank zu tun?
Ich vermute, es könnte einen Weg geben, dies zu tun SELECT version()
aber ich bin nicht sicher, welche möglichen Werte ich sehen könnte, auf welcher Plattform ich bin.
Antworten:
0 für die Antwort № 1Unter der Annahme, dass PPAS ist a Obermenge (?) von Postgresql können Sie eine Abfrage ausgeben, die eine Funktion oder Systemtabelle aufruft, die nur in PPAS existiert.
- Wenn es gelingt, ist es PPAS.
- Wenn es fehlschlägt, dann ist es nicht PPAS und sollte Postgresql sein. Oder Sie haben Pech genug, um eine andere Art von Fehler zu sein.