問題タブ [sqlobject]

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

python - SQLObject を使用して 1 つの sqlite データベースから複数の SQLite データベースにデータを移行する

これまで、私たちのアプリケーションは、SQLObject を ORM として持つ 1 つの SQLite データベースを使用していました。明らかに、ある時点で、SQLite の同時実行性の問題に直面しなければならないことがわかっていたので、そうしました。

現在のデータベースを複数のデータベースに分割することになりました。つまり、各テーブル スキーマは同じままでしたが、さまざまなテーブルを複数のデータベースに分散し、テーブルを密結合したままにしました。

これは、アプリケーションの新しいバージョンのクリーン インストールでは非常にうまく機能しますが、アプリケーションの以前のバージョンからこの新しいバージョンにアップグレードするには、アプリケーションが機能し始める前に特別なデータ移行が必要です。この場合、データベースの移行は、この単一のデータベースから適切な別のデータベースにテーブルを移動するだけです。

例として、これが古い構造であると考えてください。

single_db.db --- 単一のデータベース

新しい構造:

db1.db --- データベース 1

db2.db --- データベース 2

db3.db --- データベース 3

アップグレードが行われると、アプリケーションは上記の 3 つのデータベースと空のテーブルを含む新しい構造を作成します。また、すべてのテーブルと実際のデータを含む古いデータベース single_db.db も存在します。アプリケーションが動作を開始する前に、テーブルを移動するか、古いデータベースのテーブルから、対応する新しいデータベースの対応するテーブルにデータをコピーする必要があります。

このデータベース移行のコードを書く必要があります。古いデータベース接続を使用してテーブルをクエリし、新しいデータベース接続を使用して、返された行を対応するテーブルに挿入できることはわかっています。ここで注意する必要があるのは、これらのテーブルの一部には多数の行を含めることができるということです。つまり、行は 2/3 テーブルで 2 ~ 250 万まで可能です。

SQLiteの上でSQLObjectを使用していて、以前に誰かがこれを行ったことがあるので、他のSLQObjectトリックを使用できるかどうか尋ねたいですか?

ご協力いただきありがとうございます。

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

python - SQLObjectの同じテーブル上のManyToMany関係

私のグーグルフーはこれで不足しているので、私はこれをここの天才に投げます。

ビールレシピ作成ソフトウェアを作成していますが、SQLObjectにクラスがあり、RelatedJoinを元に戻したいと思っています。しかし、それは機能していません。

重要な場合は、SQLite3を使用しています。

表は次のとおりです。

そして、ここにエラーがあります:

これがデータベースを生成する関数です

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

python - SQLObjectでwebpyを使用してdb接続を管理するには?

Web.pyには、独自のデータベース API である web.db があります。代わりに SQLObject を使用することは可能ですが、これを適切に行う方法を説明しているドキュメントを見つけることができませんでした。データベース接続の管理に特に興味があります。wsgi エントリ ポイントで接続を確立し、それを再利用するのが最善です。Webpy クックブックには、SQLAlchemy でこれを行う方法の例が含まれています。SQLObject を使用して同様のことを適切に行う方法を知りたいと思います。

これは私が現在行っている方法です:

これは、クエリごとに新しいデータベース接続を確立するため、明らかに非効率的です。もっと良い方法があると確信しています。

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

python - 文字列に基づいてクラスを構築するより Pythonic な方法 (eval を使用しない方法)

わかった。

だから私は、他の Python オブジェクトへの参照を保存したいデータベースを持っています (現在、私はビールのレシピ原料の個人店の在庫情報を保存するために使用しています)。

成分には約 15 ~ 20 の異なるカテゴリがあるため (すべて個々の SQLObject によって表されます)、RelatedJoin 列の束を作成したくありません。そのまま「pythonic」ソリューション。

だから今私はこれをやっています:

eval()_get_name() メソッドの ICKY に注意してください。

__class__.__name__を使用せずに取得している文字列によって参照される SQLObject クラスを呼び出すにはどうすればよいeval()ですか? それとも、これは利用するのに適切な場所eval()ですか? (私は、使用するのが適切ではないという考え方のようなものですeval()-しかし、システムはエンドユーザーの入力を決して使用しないため、eval()「安全」に見えます。)

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

python - Spine.Model を拡張する良いアイデア/最良の方法

[下の背景] バックエンドで Python の SQLObject でモデル化されたデータを取得しました。現在、SQLObject を dict に変換し、dict からすべてのキーを取得してから、それを JSON ドキュメント (JavaScript 配列のみ) としてエクスポートしています。私は次のようなことを計画していました:

これは良い考えですか?Spine はすでにこの機能を提供していますか? これは Spine.Model クラスを拡張する最良の方法ですか?

バックグラウンド:

そう。Flask を使用して GUI アプリから Web アプリに移植した Python アプリケーションがあります。

私はビュー部分をやっているところで、データの操作/アプリの制御などに JavaScript フレームワークを使用することが非常に理にかなっていることに気付きました。

一連の調査の後、私は Spine に落ち着きました (最初に読んだとき、API は私にとって最も理にかなっていました。さらに、著者は O'Reilly の本 JavaScript Web Applications を書いたので、適切なリファレンスがあります)。

バックエンドでモデル化されたデータを既に取得しているので、その構成をエクスポートし、これを使用して Spine モデルの作成を自動化して、記録しているデータが常に同期されるようにしたいと考えています (私のバックエンド モデルでは、フロントエンドは次のページの読み込み時に自動的に変更されます)。

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

python - Python/SQLObject ウェブフレームワークの選択

Python/GTK と SQLObject で ORM として記述された通常のデスクトップ アプリケーションがあります。私の目標は、ユーザーがログインしてデータベースを同期/編集できる Web インターフェイスを作成することです。私のアプリケーションは異なるモジュールに分割されているため、データベースと gtk コードは完全に分離されているため、同じデータベース コードを Web サーバーでも実行したいと考えています。

したがって、これらの基準を処理できる Web フレームワークがあるかどうかを知りたいです。

  • ユーザ認証
  • 自分のデータベース コード/SQLObject を使用する
  • 基本的な UI を構築するためのいくつかのウィジェット

これは私の最初の Web プロジェクトになるので、すべての検索結果に少し混乱しています。CherryPy、Turbogears、web2py、ピラミッド? 私の状況で良いフレームワークになるものを誰かが教えてくれたら嬉しいです。

0 投票する
0 に答える
212 参照

python - SQLObject から SQLAlchemy への移行 :: SQLAlchemy はゼロ キャッシングと自動ロード テーブル更新をサポートできますか?

別のプロセスが同じオブジェクトのいくつかの属性を更新するときに、SQLAlchemy がデータベースからのオブジェクトの現在の状態の即時読み込みをサポートできるかどうかを知りたいです。

言及したいのですが、私は SQLObject から SQLAlchemy に移行しています。SQLObject を使用すると、現在、次のようなテーブルが 1 つあります。

ご存じのとおり、この cacheValues=False 設定により、属性の更新が即座にディスクにフラッシュされます。

インスタント attr1 は「何らかの値」に設定され、その値は同じオブジェクト my_config を使用する別のプロセスで使用できます。

SQLAlchemy の ORM と Core の基本的なチュートリアルを実行しましたが、理解できるように、これを達成するために最も近い方法は、session.merge() を使用することです。追加またはマージしない限り、SQLAlchemy の「my_config」の状態は保留中/ダーティになり、autoflush=True を使用すると、後続のクエリでテーブルから行が再読み取りされます。

私が考えたもう 1 つのオプションは、MyConfiguration でsetattrをオーバーライドして、インスタンスへの変更を即座にフラッシュできることでした。しかし、これは醜く、何かをハッキングするよりも SQLAlchemy の機能をできるだけ多く使用したいので、これは好きではありません。

そのため、SQLAlchemy でこの SQLObject の機能と完全に一致するものを見つけようとしています。これは可能ですか?

助けてくれてありがとう。

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

mysql - Iron pythonにsqlobject + mysqlをインストールして使用するには?

sqlobjectを使用して、iron python から mysql データベースに接続することは可能ですか? もしそうなら、どのように?何をインストールする必要がありますか?

cpython 用に sqlobject をインストールしましたが、問題なく動作しますが、ironpython で同じパッケージを使用すると、「ImportError: No module named _mysql」というメッセージが表示されます。これは、ironpython が mysql API へのアクセスに必要な C ベースの .dll を読み込めないことを意味していると理解しています。回避策は何ですか、またはありますか?

0 投票する
0 に答える
127 参照

python-2.7 - SQLObject lazyupdate は、フィールドを読み取るときにフィールドをデフォルト値にリセットしています (python 2.7、postgresql 9.1)

SQLObject の lazyUpdate 機能を使用しようとしていますが、データが破壊されています。クラス定義はこちら

コンテキスト マネージャーの関数は次のように記述できます。

オブジェクトを作成しているときは、すべて正常に動作しているようです。ただし、オブジェクトを読み取っているときは、(bar上記のような) デフォルト値を持つフィールドがデフォルト値にリセットされます。

たとえば、

繰り返しますが、最初に正しいデータを取得し、その後、一部またはすべての行の値がデフォルトに置き換えられていることがわかりました。最終的に、すべての行がデフォルトにリセットされます。デフォルト値のないフィールドは変更されません。

クラス定義で設定する行をコメントアウトすると、正常にlazyUpdate動作します (おそらく、db への書き込みがさらに多くなります)。コメントアウトしても、呼び出しはsyncUpdate失敗します。デフォルトを別の値 (-1 など) に変更しても失敗します。問題を解決しようとして、テーブルを削除して何度も再作成したため、スキーマ設定が残っているわけではありません。

FWIW、私は SQLObject 1.3.1、Python 2.7、および PostreSQL 9.1 を使用しています。