Diesel: DLL-Fehler unter OSX und PostgreSQL

Erstellt am 18. Mai 2016  ·  3Kommentare  ·  Quelle: diesel-rs/diesel

Ausprobieren der diesel_demo auf einem OSX 10.11.4-Laptop mit postgresql.

Alles funktioniert bis zur Migration:

$ diesel migration run
thread '<main>' panicked at 'Error creating timestamp helper functions for Pg: DatabaseError("ERROR:  could not load library \"/usr/local/lib/postgresql/plpgsql.so\": dlopen(/usr/local/lib/postgresql/plpgsql.so, 10): Symbol not found: _DatumIsReadWriteExpandedObject\n  Referenced from: /usr/local/lib/postgresql/plpgsql.so\n  Expected in: /usr/local/opt/postgresql/bin/postgres\n in /usr/local/lib/postgresql/plpgsql.so\n")', ../src/libcore/result.rs:785
note: Run with `RUST_BACKTRACE=1` for a backtrace.
$ otool -l `which diesel` | grep libpq
 name /usr/local/opt/postgresql/lib/libpq.5.dylib (offset 24)

Wie Sie sehen, ist diesel mit libpq.5.dylib verknüpft, sucht aber nach plpgsql.so (was unter Linux sinnvoll wäre, aber nicht unter OSX). Ich kann nur davon ausgehen, dass der Pfad für eine Linux-Installation fest codiert ist.

Hilfreichster Kommentar

Für jeden, der in Zukunft darauf stößt, wird dies dadurch verursacht, dass postgres 9.5 installiert ist, aber auf ein Datenverzeichnis für 9.4 verweist (wahrscheinlich, weil Sie pg_upgrade noch nicht ausgeführt haben).

Alle 3 Kommentare

Auf meiner Seite war alles falsch konfiguriert - behoben.

Für jeden, der in Zukunft darauf stößt, wird dies dadurch verursacht, dass postgres 9.5 installiert ist, aber auf ein Datenverzeichnis für 9.4 verweist (wahrscheinlich, weil Sie pg_upgrade noch nicht ausgeführt haben).

@sgrif können Sie mir zeigen, wie ich überprüfen kann, auf welches Datenverzeichnis postgres verweist?

Würde so etwas funktionieren?

// check installed version
$ postgres --version
postgres (PostgreSQL) 10.4

// check directory version
$ psql development_env
# select version();
                                                   version                                                    
--------------------------------------------------------------------------------------------------------------
 PostgreSQL 9.5.3 on x86_64-apple-darwin14.5.0, compiled by Apple LLVM version 7.0.2 (clang-700.1.81), 64-bit
(1 row)
War diese Seite hilfreich?
0 / 5 - 0 Bewertungen