Diesel: OSXおよびPostgreSQLでのDLLエラー

作成日 2016年05月18日  ·  3コメント  ·  ソース: diesel-rs/diesel

postgresqlを実行しているOSX10.11.4ラップトップでdiesel_demoを試してみてください。

移行まですべてが機能します。

$ 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)

ご覧のとおり、ディーゼルはlibpq.5.dylibにリンクされていますが、plpgsql.soを探しています(これはLinuxでは意味がありますがosxでは意味がありません)。 Linuxインストール用にパスがハードコードされている場所しか想定できません。

最も参考になるコメント

将来これに遭遇する人にとって、これはpostgres 9.5がインストールされていることが原因ですが、9.4のデータディレクトリを指しています(おそらくpg_upgradeまだ実行していないためです)

全てのコメント3件

私の側で物事が間違って構成されていた-修正されました。

将来これに遭遇する人にとって、これはpostgres 9.5がインストールされていることが原因ですが、9.4のデータディレクトリを指しています(おそらくpg_upgradeまだ実行していないためです)

@sgrif postgresが指しているデータディレクトリを確認する方法を教えていただけますか?

このようなものは機能しますか?

// 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)
このページは役に立ちましたか?
0 / 5 - 0 評価