問題タブ [sqlalchemy]
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.
database-design - データベース内のパーソナルメッセージングシステム
私はデータベースに不慣れで、個人的なメッセージをデータベースに(SQLAlchemyを使用して)最適に保存する方法を知りたいです。
よくわからなかったので、次のPMの表を試してみました
そしてこれがマッピングされます
次のエラーメッセージが表示されます。
リレーションUser.messages_sentの親/子テーブル間の結合条件を判別できませんでした。'primaryjoin'式を指定します。これが多対多の関係である場合は、「secondaryjoin」も必要です。
これまでのところ、これは1対多の関係ですが、同じクラスに対する2つの外部キーがあります。これは正しいアプローチですかmessages_sent
、それとも2つのテーブルが必要messages_received
ですか?それとも他に何かありますか?正しい方向へのポインタをいただければ幸いです。
編集:
明確にするために、私はこれを解決するための優れたデータベース設計パターンを求めています。誰かがSQLAlchemyを手伝ってくれるなら、それは素晴らしいことですが、決して必要ではありません。
しかし、
from_id
-columnは送信者のユーザーIDになり、受信者to_id
のユーザーIDになりますか?
その通り。
コードサンプルが不完全です。
私はこの投稿で不要なコードを省略しようとしました、私は遠くまで行ったようです。欠落している定義は次のとおりです。
python - sqlalchemy-アイテムのグループ化とサブリストの反復
次のようなテーブルを考えてみましょう。
sqlalchemyクエリステートメントを記述して、すべてのアイテムを(Name列だけでなくマッパーオブジェクトとして)最大バージョンで一覧表示したいと思いますFoo-2-b, Bar-5-c, Baz-5-f
。このメソッドを使用する必要があることは理解していますがgroup_by
、それを超えると、サブリストを取得する方法(および最大要素を見つける方法)に戸惑います。SQLAlchemyのドキュメントは、これについては明らかにあまり明確ではありません。
実際のシナリオでは、他にも多くの列('Other'など)があります。そのため、'Name'値だけでなく、実際の行オブジェクト(マッパークラス)を返す必要があります。
python - SQLAlchemy - Eager ロードを試行中..属性エラー
SQLAlchemy を使用して postgres テーブルにアクセスします。クエリにeagerloadingが必要です。
これは AttributeError: 'ColumnProperty' object has no attribute 'mapper' で失敗します
eagerloading のないものは、レコードを正しく返します。
私はSQLAlchemyが初めてです。何が問題なのかわかりません。ポインタはありますか?
python - SQLAlchemy(Postgres) とトランザクション
テーブル (キュー) のレコードを選択し、ロックし (他のプロセスはこのレコードを編集できません)、後で更新したいと考えています。
クエリと更新全体をトランザクションに入れると、他のプロセスは同じレコードを編集/クエリできないと思いました。しかし、私はこれを達成することはできません。
2 つのプロセスを開始すると、両方とも同じレコードを更新します。接続/セッション/トランザクションを適切に作成したかどうかわかりません。ポインタはありますか?
python - SQLAlchemy を使用して複数のテーブルに対して 1 つのクラスをマップする方法は?
次のような 3 つのテーブルを持つデータベース構造があるとします。
SQLAlchemy でこれを実行できるようにしたいと思います。
私はSQLAlchemyが初めてで、ドキュメントでこれを見つけました(http://www.sqlalchemy.org/docs/05/mappers.html#mapping-a-class-against-multiple-tables):
item_id と attribute_id を Item に追加するだけで、Item オブジェクトに属性を追加することはできません。
私が達成しようとしていることは SQLAlchemy で可能ですか? 「動的列」と同じ動作を得るためにデータベースを構造化するより良い方法はありますか?
python - mod_pythonの問題?
奇妙な問題が発生したときに、mod_python、python、およびSQL Alchemyを使用してWebサイトで作業してきました。データベースにすべてのレコードを照会すると、正しい結果セットが返されます。ただし、ページを更新すると、同じ結果セットが追加された結果セットが返されます。ページをさらに更新すると、より多くの結果セットが互いに「スタック」されます。
例えば:
最初のページの読み込み:10件の結果
2ページ目の読み込み:20件の結果(各2件)
3ページ目の読み込み:30件の結果(各3件)
等...
これはmod_pythonの根本的な問題ですか?mod_wsgiを使用しているときにこれに遭遇したことを覚えていません。
python - Python ORM (SQLAlchemy?) は Google App Engine で動作しますか?
Python バージョンの App Engine を使用したいのですが、Google データ ストア専用のコードを記述するのではなく、Big Table にアタッチできる汎用の Python ORM を使用してモデルを作成したいと考えています。後で通常のデータベースを使用することをお勧めします。これを可能にする SQLAlchemy などの Python ORM はありますか?
python - sqlalchemy flush()そして挿入されたIDを取得しますか?
私はこのようなことをしたい:
しかし、私f.id
がNone
それを試すときです。どうすればこれを機能させることができますか?
python - これはSQLAlchemy/SQLObjectの使用を避けるための良いアプローチですか?
ORMを使用するのではなく、ORMを使用しないPythonおよびMySQL(SQLObject / SQLAlchemy)で次のアプローチを検討しています。短期的には問題ないと思われるので、これが長期的にマイナスの影響を与える可能性があるかどうかについて、フィードバックをお寄せください。
データベースの行をオブジェクトに変換するのではなく、次のようにします。
- 各テーブルはクラスで表されます
- 行はdictとして取得されます
カーソルを表すオブジェクトは、次のようなテーブルへのアクセスを提供します。
cursor.mytable.get_by_ids(low、high)
削除とは、time_of_removalを現在の時刻に設定することを意味します
つまり、基本的にこれによりORMが不要になります。これは、各テーブルにそれを表すクラスがあり、そのクラス内で個別のdictが各行を表すためです。
python / blubのファーストクラスオブジェクトである各dict(行)により、オブジェクトのクラスを知ることができ、さらに、Pythonの低レベルデータベースライブラリがフィールドレベルでの型の変換を処理するため、型マッピングは簡単です。それらの適切なアプリケーションレベルのタイプ。
この道を進む際に潜在的な問題を見つけた場合は、私に知らせてください。ありがとう。