問題タブ [python-elixir]
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.
python - MySQLサーバーがなくなりました-チェックアウトイベントハンドラーによる切断処理が機能しません
アップデート3/4:
私はいくつかのテストを行い、チェックアウトイベントハンドラーを使用して切断をチェックすることがElixirで機能することを証明しました。私の問題はサブプロセスからの呼び出しと関係があると考え始めました更新:サブプロセスを呼び出して自分自身を反証session.commit()
か?session.commit()
しました。以下の例を更新しました。マルチプロセッシングモジュールを使用してサブプロセスを作成しています。
これがどのように機能するかを示すコードです(pool_recycle
!を使用しなくても):
アップデート2:
MySQLのポスト1.2.2バージョンとして別の解決策を見つけることを余儀なくされています-pythonは再接続パラメータのサポートを削除します。誰かが解決策を手に入れましたか?:\
アップデート1(古いソリューション、MySQL-pythonバージョン> 1.2.2では機能しません):
解決策を見つけました:呼び出しに渡すconnect_args={'reconnect':True}
とcreate_engine
問題が修正され、自動的に再接続されます。チェックアウトイベントハンドラーも必要ないようです。
したがって、質問の例では、次のようになります。
元の質問:
この問題に対してかなりのグーグルを実行しましたが、Elixirに固有の解決策が見つからなかったようです-SQLAlchemyドキュメントの「切断処理-悲観的」の例を使用してMySQL切断を処理しようとしています。ただし、これをテストすると(MySQLサーバーを再起動して)、チェックアウトイベントハンドラーの前に「MySQLサーバーがなくなりました」というエラーが発生します。
elixirを初期化するために使用するコードは次のとおりです。
elixirエンティティオブジェクトを作成して保存するとsession.commit()
、上記で定義したイベントから生成された「ping_connection」メッセージが表示されます。ただし、mysqlサーバーを再起動して再度テストすると、ping接続イベントの直前にmysqlサーバーが消えたというメッセージが表示されて失敗します。
関連する行から始まるスタックトレースは次のとおりです。
python - OneToManyエリクサー関係のカウントによる順序
ORMにElixirを使用していますが、関係で注文しようとすると問題が発生します。
私がやろうとしているのは、投稿数でソートされたユーザーのリストを取得することです。私は次のような方法を試しました
成功せずに。
これが私のElixirエンティティです:
python - Elixir EntityCollection.remove() が機能しない
Entity
のコレクションから特定のものを削除しようとしてEntityCollection
いますが、機能していないため、例外が発生します: list.remove(x): x not in list
。
コードの抜粋は次のとおりです。
user.platformSubscriptions.remove(platform)
プラットフォーム変数は、実際には platformSubscriptions コレクションにあります。
python - Python 3 のエリクサー?
SqlAlchemy 0.7.3 を正常にインストールしましたが、Python 3 で Elixir をインストールする際に問題がありますか? 私はググってみましたが、希望を失っています。Python 3 用のバージョンの Elixir は本当にありますか? 前もって感謝します。
python - Python Elixir OneToMany および ManyToOne の実装: OneToMany 関係を持つ新しいレコードの挿入について?
Python Elixirで1対多の関係を持つレコードをどのように挿入しますか? 以下のコードを参照してください。
python - Elixir で SQLite と MySQL を使用する場合は存在しないが、個別に使用する場合は存在しない列
私の Qgis 用プラグインでは、現時点で SQLite と MySQL の 2 つのデータベースを使用する必要があります。SQLite のみを使用したときはすべて問題ありませんでした。最近、MySQL 用のモジュールを追加しました。それらを個別にテストする限り、うまく機能しますが、すべてをまとめると、 qgis から次のようになりました。
これは SQLite のエンティティ モジュールです: http://pastebin.com/ya4q9En1 これは MySQL のエンティティ モジュールです: http://pastebin.com/3NypygV4
私の間違いがどこにあるかを理解するのを手伝ってもらえますか?
python - 特定の基本クラスから派生したすべてのクラス宣言を反復処理するにはどうすればよいですか?
呼び出したときに、elixir \ sqlalchemyがモデルで宣言したすべてのエンティティクラスをどのように知るのか、迷っていましたsetup_all()
。私の小さなプロジェクトではそのような機能が必要ですが、手がかりがありません。elixirをステップトレースしようとしましsetup_all()
たが、すべてのエンティティクラスのコレクションが「グローバル」リストに保持されていることがわかりました(またはdictでしたか?)が、リストがいっぱいになった瞬間を捉えることができません。何か案は?
python - ElixirまたはSQLAlchemyで、それ自体との多対1の関係に対してカスタマイズ可能な「オーダー・バイ」を作成する方法は?
エンティティノードがあります:
次のようにクエリすると:
子供たちとは対照的に、かなり秩序立った父親がいます。(fathers[0].children はソートされていないノードのリストを返します)
この問題のほぼ完璧な解決策は、ノードの「children」フィールドに「order_by」パラメーターを追加することです。このようなもの:
これで、子供たちは並べ替えられ、すべて問題ありませんが... 並べ替えの基準を変更したい場合はどうすればよいでしょうか? 「id」でソートしたい場合もあれば、子の数などでソートしたい場合もあります。さて、以前のソリューションはあまり良くありません。
どうすればこれを克服できますか?
python - エリクサーとの多対多の関係を数えて注文するにはどうすればよいですか?
Elixirを使用し、投票者と候補者の2つのエンティティを持ち、それらの間に多対多があります(投票者は重要な場合は多くの候補者に投票できます)。有権者の数でソートされた候補者のリストを取得したい。そのようなエリクサーの宣言を使用してそれを行う方法はありますか?:
多対多の関係に基づいてSQLAlchemyの順序付けを読みましたが、Elixirを使用してより明確な方法でそれを実行したいと考えています。可能だといいのですが。
python - SQLAlchemyは数百万のデータを非効率的に挿入します
100000(ユーザー、パスワード)タプルの挿入が完了するまでに長い時間がかかります。
どの関数に時間がかかりますか?Pythonでボトルネックをテストする方法はありますか?キャッシュして後でコミットすることでそれを回避できますか?</ p>