問題タブ [django-database]

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 投票する
5 に答える
995 参照

mysql - Django が自動テーブル更新を「実際に」サポートしていないのはなぜですか?

最近、私は Django で Web 開発を学ぼうとしていますが、とても満足しています...

しかし、特に厄介なことが 1 つあります。特に、django の背後にある「単純さ」の哲学について考えた場合です。

私が経験したように、djangoでテーブルを更新することは単純さとはほど遠いということです。

たとえば、実際のケースと同じように、最初にエントリ タイトルのスラッグ フィールドを追加することをスキップしました。しかし、しばらくして、テーブルにスラッグ列を追加したいと思いました.Djangoの新人である誰もが期待するように、python manage.py syncdbコマンドを試してみました. そしてもちろんうまくいきませんでした...少し検索したところ、「dbshel​​lコマンドラインに新しい列を「手動で」追加する必要がある」ことがわかりました(使用しているデータベースはmysqlです)。

理由はわかりませんが、django で Web サイトを簡単に作成できることを知った後では、これはまったくおかしな話だと思います。皆さんもそう思いませんか?または、他に解決策や今後の予定がある場合は、共有していただけますか?

前もって感謝します...

PS。シェルでdbと仲良くするのは構いませんが、知りたいのは、djangoでなぜそうなのかということです...

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

django - クエリセットのキャッシュと再評価

例を簡単にするために、いくつかの不完全なコードを投稿します。階層構造でいくつかのメトリックを計算するために再帰関数を実行しています。

クラス カテゴリ(models.Model):

何が起こっているかを確認するのに十分なコードであることを願っています。ここで求めているのは、これらのクエリをそれぞれ 1 回だけ実行し、結果を渡す再帰関数です。それは現在起こっていないようで、パフォーマンスが低下しています。これが PHP/MySQL であった場合 (Django を使用した後は嫌いですが)、クエリを一度実行して渡すことができました。

Djangoのクエリセットについて私が理解していることから、それらは私の if queryset == None then queryset=stuff 部分で評価されることはありません。どうすればこれを強制できますか? のようなことをすると再評価されmetric_queryset.filter(category=self)ますか?

データの鮮度は気にしません。メトリックと評価ごとにDBから1回読み取り、後でDBに再度アクセスせずにフィルタリングしたいだけです。非常に単純な答えが必要なように感じる、イライラする問題です。ピクルス化は機能するように見えますが、Django のドキュメントではあまり説明されていません。

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

django - 行番号に関連付けられた Django でのデータベース リクエストの監視

私たちのプロジェクトでは、非常に奇妙な無関係な DB ヒットが発生しています。おそらく行番号で、リクエストがどこから来ているかを監視する方法はありますか? SQL 印刷ミドルウェアは役に立ちますが、この種の要求が生成される可能性がある場所をすべて調べましたが、ソースが見つかりません。

上記が不可能な場合は、ソースを絞り込むための指針をいただければ幸いです。

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

python - djangoManyToManyField全体のデータベースクエリ

ManyToManyフィールドに別のオブジェクトが含まれているすべてのオブジェクトを選択する方法を知りたいのですが。私は次のモデルを持っています(取り除いた)

1つまたは複数のカテゴリのすべての画像を選択する機能が必要です。

ただし、次のようなことができるように、可能であればQuerySetを返す必要があります。

これは、関連するすべてのCategoryオブジェクトをロードし、それらのpicture_set属性をマージすることで実行できますが、非効率的です。また、可能であれば生のSQLにフォールバックしないようにしたいと思います。

前もって感謝します

0 投票する
6 に答える
8817 参照

python - 百万行の Django テーブル

2 つのアプリケーション (本とリーダー) を持つプロジェクトがあります。

Books アプリケーションには、次のフィールドを持つ 400 万行のテーブルがあります。

400万行のデータベースにクエリを実行することを避けるために、件名で分割することを考えています(200.000行の20テーブルを持つ20モデル( book_horror、book_drammatic、ecc ))。

「リーダー」アプリケーションでは、このフィールドを挿入することを考えています:

したがって、ForeignKey の代わりに、整数の「book_subject」(適切なテーブルにアクセスできるようにする) と「book_id」(「book_subject」で指定されたテーブル内の本にアクセスできるようにする) を使用することを考えています。

400万行のテーブルをクエリすることを避ける良い解決策はありますか?

代替ソリューションはありますか?

ありがとう^__^

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

django - Django と NoSQL、すぐに使えるライブラリはありますか?

これまでのところ、Django はいくつかの RDBMS とうまく統合されています。NoSQL、スキーマレス、ドキュメント指向の DBMS が台頭しています。流行りのファッショナブルな DBMS を Django に統合する状況はどうですか? Django 用の本番環境対応または少なくともすぐに使用できるライブラリはありますか?

これまでのところ、私はこれらを手元に持っています:

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

django - Django の「manage.py テスト」を使用しながら、settings.py の「ライブ」データベースで単体テストを実行します。

Django でデータベースをセットアップしている場合、TestRunnersettings.pyに一時的なテスト データベースで実行する代わりに、( の DATABASE_* 設定に従って) 'ライブ' データベースを使用させるにはどうすればよいでしょうか。

liveたとえば、で指定されたデータベースで次のテストを実行したいと思いますsettings.py

現在、上記のコードは、構築されたテスト データベースにのみ保存されます。私のアプリケーションにはデータベース上で動作する複数の並列プロセスがあるため、これは非常に制限的です。また、「ライブ」データベースに物事を送り込み、短いスリープ後にそれらがどこにあるかを確認する機能がなければ、単体テストは不完全になります (そして一貫性がなくなります)。

私が考えることができる2つの潜在的なオプションは次のとおりです。

  1. Django API をプラグインして、settings.py でデータベースに「手動で」接続する方法を見つけます。

  2. 「ライブ」データベースへの低レベル接続を作成し、手動で入力します

前者は、Django のパブリック API の下にあるものに依存するため、問題があります。後者は、データベースにとらわれない Django データベース API を放棄し、より手作業が必要になるため、問題があります。

あなたの考えと意見に感謝します。

ブライアン

0 投票する
4 に答える
4606 参照

django - Django の既存のデータベースからいくつかのモデルを生成する

私はこれが存在することを知っています

しかし、それを制限する簡単な方法はありますか? 不要なものを手動で削除することなく。

100 を超えるテーブルを持つデータベースに接続していますが、必要なモデルは 4 つか 5 つだけです。いくつかのテーブルからモデルを簡単に生成する方法はありますか?

それらは非常に大きなテーブルなので、すべてを入力するのも好きではありません。

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

mysql - Djangoをgevent-mysqlやConcurrenceのMySQLドライバーなどのサポートされていないMySQLドライバーで動作させる方法は?

Concurrenceやgeventなどの非同期フレームワークでDjangoを実行することに興味があります。どちらのフレームワークにも、独自の非同期MySQLドライバーが付属しています。

問題は、Djangoが公式にMySQLdbのみをサポートしていることです。DjangoをgeventまたはConcurrenceに付属のMySQLドライバーで動作させるには何をする必要がありますか?

私が従うことができるステップバイステップのガイドはどこかにありますか?これは大きな仕事ですか?

ありがとう。

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

python - Django を MySQL Connector/Python で動作させるには?

Django を myconnpy で動作させた人はいますか?

http://github.com/rtyler/connector-django-mysqlを確認しましたが、作成者によると、これは非常に古く、サポートされていません。

Django を myconnpy で動作させることができた場合は、その経験を共有してください。

ありがとう。