問題タブ [py-postgresql]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
2801 参照

python - Python3からPostgreSQLへの接続を開くことができません

Python3.2のインストールからPostgreSQLに接続できないという奇妙な問題が発生しています。私はFedora15を実行しており、yumを使用してFedoraリポジトリーからPython3とPostgerSQL9をインストールしました。なぜ私がこの問題を目にしているのか、そしてそれを修正する方法について誰かが何か考えを持っていますか?グーグル検索は何も出てこなかった。

ユーザー名、パスワード、データベースを変更しましたが、pg_hba.confファイルは正しいです。

pq://user:password@host/database補足として、異なるユーザー、パスワード、データベースの組み合わせを使用して接続しようとした場合、およびローカルホストとリモートホストの両方にキーワードの代わりに接続文字列を使用した場合にも、同じエラーが発生します。

0 投票する
1 に答える
627 参照

python - py-postgresql マルチスレッドの問題

重い負荷がかかると、ピラミッド Web アプリが py-postgresql 例外をスローすることがわかりpostgresql.exceptions.ProtocolErrorました。一部の検索で、py-postgresql はスレッドセーフではなく、1 つの接続を複数のスレッドで同時に使用できないことが明らかになりました。

ある種のプーリング メカニズムを作成しようとしましたが、それでも ProtocolErrors が発生します :(

私は何を間違っていますか?

まず、いくつかの接続オブジェクトを作成します。

プール内の各オブジェクトにはdb_lock = threading.Lock()、データベースへの接続が含まれていますself.conn = postgresql.open( conn_string )

次に、接続のロックを取得して、いくつかの作業を行います。workこのコードは多くのスレッドで同時に実行できますが、ロックのために 1 つの接続で2 つのスレッドを同時に実行することはできないと思います。

私のコードに欠陥があるのでしょうか、それとも py-postgresql の「スレッドの安全性」の性質を誤解したのでしょうか? 私を助けてください!

0 投票する
1 に答える
1301 参照

python - 暗号化されたパスワードでpy-postgresqlを使用する

Pythonでは、次のコードを使用してPostgreSQLデータベースに接続できます。

しかし、上記の行では、プレーンテキストのパスワードを入力する必要がありpy-postgresql、PostgreSQLデータベースに保存されているハッシュ値と比較するためにそれをハッシュします。自分でハッシュしたパスワードを使用したい場合MD5、つまりpy-postgresqlにハッシュを実行させたくない場合。どうすればいいですか?のソースコードを変更しようとしましたpy-postgresqlが、ハッシュが発生する場所が見つかりませんでした。次に、py-postgresqlSSLモードを有効にできるの設定を見つけます。誰かがそれを設定する方法について私に簡単な例を教えてもらえますか?

敬具。

0 投票する
2 に答える
152 参照

python - postgresqlの一意の日付を取得するメモリ効率の良い方法は?

私は約 3000 万のエントリを持つデータベースを持っていますが、これは非常に多く、より大きなデータベース エントリでの作業に問題があること以外は何も期待していません。

しかし、py-postgresql と.prepare()ステートメントを使用して、「」ベースでエントリを取得できることを願っています。yieldしたがって、データベースからの結果だけでメモリがいっぱいになるのを避けることができます。

これは私がこれまでに持っているものです:

if not row['time'] in uniqueue_days:メモリ不足になる前に、result()ループする前にすべての結果を取得する可能性があることを考えると、それほど奇妙ではありませんか? ライブラリpostgresqlを「ページング」するか、ラウンドごとに60kの結果をバッチダウンする方法、またはクエリを作り直してより多くの作業を行う方法はありますか?

前もって感謝します!

編集:データベースの日付はUnixタイムスタンプであることに言及する必要があります。リスト%Y-%m-%dに追加する前に、それらをフォーマットに変換するつもりuniqueue_daysです。